Kill Switches
Every flag is a kill switch. Toggle it off in the dashboard and every SDK starts returning the default value within seconds, no deploy, no rollback, no incident war room.
How it works
Each flag has an enabled switch separate from its rules and
rollout. When it's off, every evaluate() call returns the
default value with reason: 'flag_disabled'. Flip it back on
and your rules and rollouts resume from where they were, nothing is lost.
Propagation
- Streaming SDKs: receive the change over SSE in 1–3 seconds.
- Polling SDKs: pick it up on the next refresh interval (30s by default).
- Direct REST: every call is a fresh evaluation; the change is instant.
Patterns
Three habits that make kill switches actually save you:
- Wrap risky launches. Every new feature ships behind a flag for at least a week. The kill switch is your one-click rollback.
- Wrap external dependencies. Put a flag around any third party, payments, analytics, AI, so you can shed load when they go down.
- Pick safe defaults. The default is what users see when the flag is off. Make sure that path always works without the new code.
Don't use a kill switch as a permanent feature toggle, delete the flag once a feature is fully launched. Stale flags become
technical debt.
Audit trail
Every kill-switch toggle is recorded with the actor, timestamp, and reason. You can review the full history of any flag from its detail page.