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.

snapshot
sh
GET /v1/snapshot
If-None-Match: "snap_42"

304 Not Modified

What 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.