EMZETT.
Login

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