# Documenter — F-027 Caching layer with explicit contracts

## Summary
Cache module exposes a read-through wrapper, registered contracts and metrics. PostgreSQL remains the source of truth; the cache is best-effort and degrades to the loader when the adapter is unavailable.

## Public API notes

| Route | Access | Result |
|---|---|---|
| GET /cache/contracts | admin | Returns registered contracts (key, TTL, source, invalidation) |
| GET /cache/metrics | authenticated | Returns hits/misses/invalidations/hitRatio |

## Contracts (v1)
- `product:{slug}` 300s invalidated by ProductUpdated
- `category:{slug}` 300s invalidated by CategoryUpdated
- `nav:tree` 600s invalidated by NavigationInvalidated
- `search:popular` 60s invalidated by SearchInvalidated

## Evidence
- `work/artifacts/F-027/architect.md`
- `work/artifacts/F-027/implementer.md`
- `work/artifacts/F-027/reviewer.json`
- `work/artifacts/F-027/security.json`
- `work/artifacts/F-027/qa.json`