The Full Workflow
Feature flags and canary deployments are complementary, not competing, tools. A mature progressive delivery pipeline uses both in sequence:
Code Merged
│
▼
Deploy to Production (behind a Feature Flag = OFF)
│
▼
Enable Flag for Internal Employees
│ (Manual validation, QA sign-off)
▼
Enable Flag for Beta Users (1–5%)
│ (ACA running, monitoring business metrics)
▼
Canary Rollout: 5% → 25% → 50% → 100%
│ (ACA gates each step automatically)
▼
Feature Flag Removed from Code (cleanup)
The feature flag handles the who (targeting specific user segments). The canary + ACA handles the how much (traffic percentage) and the is it safe (automated health gates).
When to Use Which Tool
| Scenario | Best Tool | Reason |
|---|---|---|
| Hide an incomplete feature during development | Feature Flag | Zero traffic exposure; instant toggle |
| Test a new algorithm with real users for business impact | A/B Test (Feature Flag) | Need user-level assignment and business metric tracking |
| Validate a new service version is technically healthy | Canary + ACA | Infrastructure-level traffic split; statistical health comparison |
| Emergency kill switch for a broken feature | Feature Flag | Faster than a rollback deployment; no infrastructure change needed |
| Migrate a database schema with zero downtime | Feature Flag + Canary | Flag controls which code path reads/writes; canary validates the new path |
Flag Debt: The Hidden Cost
Every feature flag you add is a liability if not managed. Flag debt accumulates when:
- Flags are never removed after a full rollout completes.
- The team forgets what a flag does or is afraid to remove it.
- Flags reference each other, creating combinatorial complexity (
if flagA && flagB && !flagC). - Tests don't cover all flag combinations, hiding bugs.
Best practices to prevent flag debt:
1. Add a removal_date or owner field to every flag in your flag management system.
2. Create a ticket to remove the flag at the same time you create the flag.
3. Set up alerts for flags that have been at 100% rollout for more than 30 days.
4. Treat flag removal as a first-class engineering task, not optional cleanup.
Interviewers at companies like Netflix, Uber, and Meta often ask about the operational complexity of feature flags at scale. A strong answer acknowledges flag debt and describes a governance model: flag ownership, automated staleness detection, mandatory removal tickets, and testing strategies that cover flag combinations. Mentioning that flags should be treated as temporary code with an expiry date — not permanent configuration — signals senior-level thinking.