Feature flags (also called feature toggles) are conditional switches in code that let teams control feature availability in production at runtime, without deploying new code. Progressive delivery extends this concept into a disciplined release strategy—combining feature flags, canary releases, and gradual rollouts to minimize risk while maximizing learning. This approach decouples deployment (code reaches production) from release (users see the feature), giving teams fine-grained control over who sees what, when. Unlike traditional deploy-and-pray methods, progressive delivery treats every release as a controlled experiment where blast radius stays small, rollback is instant, and feature exposure can be dialed up or down based on real-time metrics. The key mental model: feature flags are the control mechanism; progressive delivery is the strategic framework for safe, incremental innovation at scale.
What This Cheat Sheet Covers
This topic spans 16 focused tables and 105 indexed concepts. Below is a complete table-by-table outline of this topic, spanning foundational concepts through advanced details.
Table 1: Feature Flag Types
Feature flags come in distinct types based on their intended lifespan and purpose — release toggles expire in weeks while permission flags are permanent business gates. Choosing the right type upfront prevents the most common form of flag debt: short-lived flags outliving their purpose.
| Type | Example | Description |
|---|---|---|
if (flags.newCheckout) { renderNewFlow()} else { renderOldFlow()} | • Short-lived flag that hides incomplete features until ready • removed once feature reaches 100% rollout • Typical lifespan: days to weeks | |
variant = flags.pricingTestif (variant === 'A') { showPrice(9.99)} | • Drives A/B tests or multivariate experiments by assigning users to variations • retired after statistical significance reached • Returns string/JSON, not just boolean | |
if (flags.enableCaching && load > threshold) { useCache()} | • Long-lived flag controlling operational behavior like caching, rate limiting, or load shedding • acts as a circuit breaker or performance tuner • Never expires if tied to permanent system behavior |