Voodoo AIVoodoo AI
Book a Consultation
Back to DevOps & Delivery
DevOps 8 min read April 2026

Feature Flags in Production

Progressive rollouts, A/B testing, and the safety mechanisms that let you ship continuously without risk.

Decoupling Deployment from Release

Feature flags separate code deployment from feature release. Code ships to production hidden behind a flag. When ready, the flag is enabled for a subset of users, then gradually rolled out. If problems emerge, the flag is disabled — no redeployment needed.

The decoupling is transformative. Without feature flags, every code change is a release. With feature flags, code changes are deployments, and feature releases are business decisions. Deployments happen continuously; releases happen when the business is ready.

Trunk-Based Development: All developers commit to the main branch, hiding incomplete features behind flags. This eliminates long-lived branches, merge conflicts, and integration hell. It also enables experimentation: A/B testing, canary releases, and dark launches all depend on feature flags.

Progressive Rollout Patterns

  • Percentage-based: Enable for 1%, 5%, 25%, 100% of users. Monitor metrics at each step. Each step has automatic rollback criteria based on error rate, latency, and business metrics.
  • User segments: Beta users, internal employees, specific customer tiers. Provides controlled exposure to friendly users who will report issues constructively.
  • Geographic: Roll out by region to contain blast radius. Start with a low-traffic region, then progress to higher-traffic regions.
  • Time-based: Enable during business hours when engineering is available. Night-time rollouts are risky because the engineering team is asleep when issues occur.
Combined Pattern: A feature might roll out to internal users first, then beta users, then 1% of Australian users, then 5% of European users, then 25% of North American users, and finally 100% globally. Each stage has monitoring, rollback criteria, and a decision gate.

Safety Mechanisms

Automatic rollback triggers: error rate spike, latency threshold, custom business metrics. Circuit breakers disable features if downstream dependencies fail. Kill switches immediately disable all features in an emergency.

Rollback Triggers: If error rate increases by more than 0.5%, disable the flag. If p95 latency increases by more than 100ms, disable the flag. If conversion rate drops by more than 2%, disable the flag. These triggers are evaluated continuously, and the flag is disabled automatically if any trigger fires.
Kill Switches: The emergency brake. A kill switch immediately disables a feature for all users, regardless of targeting rules. Used for emergencies: security vulnerabilities, data corruption, or catastrophic failures. Every critical feature should have a kill switch accessible to on-call engineers without requiring code changes or deployments.

Our Recommendation

Use LaunchDarkly or Unleash for feature management. Implement progressive rollouts for all user-facing changes. Maintain kill switches for critical paths. Feature flags are not optional for production systems — they are essential safety equipment.

Platform Choice: LaunchDarkly is the enterprise standard with targeting rules, progressive rollouts, A/B testing, and analytics. Pricing is per monthly active users. For smaller teams, Unleash is an open-source alternative that provides core feature flagging without the enterprise price tag.
Flag Cleanup: Remove flags after the feature is stable (typically 30 days after full rollout). Accumulated flags create technical debt and confusion. The implementation pattern: wrap every new feature in a flag, define the rollout strategy before deployment, implement automatic rollback triggers, and maintain kill switches for critical paths.

Voodoo AI Engineering Team

We have managed feature flags for systems serving millions of users.

Shipping features safely?

We have managed feature flags for systems serving millions of users.

Book a Consultation