2.0 Evaluate
Evaluate without putting a service in the request path.
The SDK holds a local snapshot, evaluates typed flags in memory, and keeps serving safe defaults while the network catches up.
Practice
A flag check should feel like reading configuration from memory.
One client per process
The SDK owns the snapshot cache for the runtime key and keeps the latest known flag state in memory.
Explicit fallback
Every evaluation includes the value the application should use if the flag is missing, stale, or not ready.
Freshness without fragility
Streaming updates improve responsiveness, while conditional snapshot polling keeps correctness independent of a live socket.
Product proof
The runtime path stays narrow.
Server runtime keys read one environment snapshot. ETags make unchanged snapshots cheap, streaming pushes invalidation hints, and polling stays as the quiet fallback.
GET /v1/snapshot
If-None-Match: "snap_42"
304 Not ModifiedWhat changes
The habit behind the feature.
Snapshots are the source of truth
The SDK asks for the authoritative snapshot, then evaluates rule groups and defaults locally instead of calling a remote service for every request.
Failures resolve to application intent
Missing flags, type mismatches, and startup races resolve to the default value chosen by the caller, not a surprise exception in production.
Direct evaluation still exists
The public evaluation API is useful for activation checks and browser/client-key flows, but backend request paths should prefer local SDK evaluation.
Go deeper