Evaluation Model
Evaluation is total: for any declared feature and valid context, evaluate(...) returns a typed value.
Execution Flow
- Resolve current namespace snapshot.
- Resolve feature definition for requested feature key.
- If namespace kill-switch or feature inactive, return default.
- Evaluate rules by deterministic precedence.
- Apply ramp-up gate using stable bucketing when configured.
- Return matched value or default fallback.
Determinism Boundaries
Determinism assumes stable inputs:
- same feature declaration
- same loaded snapshot
- same context values (including stable ID)
Any change in those inputs can change the result, by design.
Failure Posture
Evaluation itself does not throw parse errors. Boundary failures occur at snapshot/patch ingestion time and are surfaced as typed Result failures.