Decoupled control plane and distributed evaluation architecture ensuring sub-millisecond lookups, offline resilience, and zero network hops on hot execution paths.
Distributed edge and client architecture eliminating centralized evaluation bottlenecks.
Visual administrative console for authoring rules, defining targeting cohorts, assigning rollout percentages, and scheduling releases.
Client SDKs evaluate rules entirely in local RAM. Features zero network latency overhead during user evaluations and zero API rate limits.
Server-Sent Events push rule modifications instantly to connected applications within 50ms, with automatic backoff and reconnection.
Every toggle, percentage change, and rule update is cryptographically recorded with full actor identity, enabling single-click instant rollbacks.
Domain model decomposition, hierarchical folder management, contextual rule graphs, segment relationships, and the 10-step evaluation pipeline.
Physical Kubernetes container sizing, real-time SSE push streaming (< 50ms), Redis Pub/Sub cluster, and zero-network-hop in-memory SDK evaluation.
Rules evaluate sequentially in an explicit priority chain until a matching rule fires.
| Operator | Description | Example Rule Condition |
|---|---|---|
EQUALS / NOT_EQUALS |
Exact string, numeric, or boolean equality matching. | country EQUALS "IN" |
IN / NOT_IN |
Membership in a set of allowed values. | tier IN ["enterprise", "growth"] |
CONTAINS / STARTS_WITH |
Sub-string or prefix matching on string attributes. | email ENDS_WITH "@vaagatech.com" |
GREATER_THAN / LESS_THAN |
Numeric threshold comparisons. | account_age_days GREATER_THAN 30 |
SEMVER_GTE / SEMVER_LTE |
Semantic version comparison for mobile and native apps. | client_version SEMVER_GTE "2.4.0" |
PERCENTAGE_ROLLOUT |
Deterministic MurmurHash3 bucketing (0–100%). | rollout 25% OF userId |
BEFORE / AFTER / BETWEEN_DATETIME |
Compares live current_datetime (or a context timestamp) with ISO-8601 values. |
current_datetime between_datetime ["2026-11-20T00:00:00Z","2026-11-30T23:59:59Z"] |
DATE_EQ |
Calendar-day equality (UTC). | current_datetime date_eq "2026-12-25" |
IN_SEGMENT / NOT_IN_SEGMENT |
Reusable segment membership. | segment in_segment ["enterprise-orgs"] |
FLAG_EVAL_EQ |
Depends on the state of another flag. | payment-v2 flag_eval_eq "true" |
ATTACH_SEGMENT, SET_TELEMETRY) run after a match.
current_datetime, app_version, environment). User-context rules and segment overrides are rejected at create/update time.
OPEN and the flag serves its off value with reason CIRCUIT_BREAKER_TRIPPED. Operators can FORCE_OPEN, FORCE_CLOSED or RESET manually.
`${flagKey}:${userId}` through a 32-bit MurmurHash3 algorithm modulo 100. This guarantees identical user bucket assignment across multiple services and servers.