Feature flags and progressive delivery
In short: Feature flags are switches in the code with which you turn features on and off independently of deployment, for example for part of the users.
In more detail: This separates “shipping code” from “releasing a feature”. Progressive delivery (canary, percentage rollout) first enables new features for few users and watches errors before everyone gets them. On problems, switching off is enough instead of a rollback.
In Depth
- Types: Release flags (short-lived), experiment flags (A/B test), ops flags (emergency switch), permission flags.
- Rollout: 1 % → 10 % → 50 % → 100 %, with monitoring.
- Kill switch: Switch the feature off immediately.
- Technical debt: Clean up old flags, otherwise the code sprawls.
- Tests: Test both paths (on and off).
- Selection: Randomly but stable per user (hash of the user ID).
See also: Strangler fig pattern and migration, SLI, SLO and error budget