Context (P1 — scale)
Every SDK GET /api/v1/sdk/flags call hits PostgreSQL. Polling SDK fleets multiply this. Redis is on the v2 roadmap; Caffeine covers single-instance now.
Scope
- Caffeine cache keyed by environment id over the evaluation response; invalidate on flag/flag-state/flag-archive mutations (and on flag creation which fans out states)
- ETag (hash of payload or env-version counter) +
If-None-Match → 304 handling on the SDK endpoint
- Cache metrics via Micrometer (hit ratio)
- Config: TTL + max size in properties
Acceptance criteria
Context (P1 — scale)
Every SDK
GET /api/v1/sdk/flagscall hits PostgreSQL. Polling SDK fleets multiply this. Redis is on the v2 roadmap; Caffeine covers single-instance now.Scope
If-None-Match→ 304 handling on the SDK endpointAcceptance criteria