release-engineering

Dark Launch

Releasing a feature to production with its user-facing behavior hidden, so the code runs and can be tested at scale before anyone sees it. It de-risks big changes by separating deploy from release.

What it means

A dark launch ships new code to production while keeping its visible effect turned off. The feature may run in the background - executing new queries, warming caches, or writing to a shadow path - without changing anything the user perceives. Feature flags make this possible by letting you deploy the code cold and control exposure separately from the release itself.

Why it matters

Big features carry two kinds of risk, the risk that the code breaks under real traffic and the risk that the change harms the user experience. A dark launch lets you retire the first risk before taking on the second. You learn how the code behaves at production scale, catch performance regressions, and validate data flows while the blast radius is zero. When you finally flip the flag on, the deploy is old news and only the user-facing behavior is new.

In practice

A common pattern is dark launching a rewritten search backend. The new service runs on every query in parallel with the old one, its results discarded, while you compare latency and error rates against a guardrail metric. Once the numbers hold, you progressively expose real results through the flag. Tools like LaunchDarkly and Unleash support this by gating exposure independently of deployment. Our rollout strategies and progressive delivery guide put dark launching in the wider release toolkit.

Related Terms

Learn More

Related Articles

Free Newsletter

Get the Feature Flags Newsletter

Platform benchmarks, real pricing data and progressive delivery practice. No spam.

Free. Unsubscribe any time. See our privacy policy.