Describe an architecture that decouples business launch from code deployment

This tests feature-flag architecture separating deployment from release. Strong answers cover toggle categories and decision decoupling. They need lifecycle management to limit carrying cost. Red flag: treating flags as permanent or ignoring toggle debt.
What's really being asked
This question evaluates whether you can design a continuous delivery architecture where deploying code to production does not automatically expose new behavior to users. The interviewer wants to see that you understand feature toggles as a first-class architectural concern, not just as conditional if statements scattered through the codebase.
The full answer
First, categorize toggles by lifespan and purpose: release toggles are transient and should be retired quickly; experiment toggles support A/B testing; ops toggles act as circuit breakers; and permissioning toggles control entitlements. Second, decouple decision points from decision logic using inversion of decision so that routing happens at the edge or via configuration rather than nesting business logic inside conditional blocks. Third, distinguish static configuration, which is preferred for simplicity, from dynamic configuration, which enables per-request overrides and canary releasing. Fourth, manage toggle state through structured configuration files or a distributed configuration store rather than hardcoding, and expose current toggle configuration for observability. Fifth, address long-term carrying cost by planning toggle retirement so the system does not accumulate dead flags.
The mistakes people make
A red flag is proposing only hardcoded boolean flags or environment variables without a management strategy. Another mistake is placing toggles deep in core business logic instead of at the edge, which pollutes the domain model. Candidates also err by treating all toggles as permanent infrastructure; release toggles in particular are transient debt that must be removed after launch. Ignoring validation complexity is another error, since combinatorial flag states multiply test paths.
What usually comes next
The interviewer may ask how you would handle a toggle that needs to change at runtime without restarting services. They might probe the trade-off between dynamic routing versus dynamic configuration, or ask how you prevent a failed flag evaluation from crashing a request. You could also be asked how to test when flags create many possible execution paths, or how to sunset a long-lived permissioning toggle.
A concrete example
Imagine a team refactoring a pricing engine. They deploy the new algorithm behind a release toggle that defaults to off. The toggle is configured statically in a structured YAML file but evaluated dynamically per request at the API gateway edge. After a canary release to five percent of traffic, the team enables the toggle globally. Once metrics confirm stability, they remove the toggle and the old code path entirely within two weeks, avoiding carrying cost.
Interview question
After a successful canary launch using a release toggle, what is the architecturally correct next step to control carrying cost?
- a.Convert the release toggle into a long-lived ops toggle for future rollback protection
- b.Keep the toggle active but default it to on so the legacy path remains accessible
- c.Promote the toggle to an experiment toggle to continue validating the feature
- d.Retire the toggle and delete the obsolete code path once metrics confirm stabilityCorrect
Why? this is the answer
Release toggles are transient debt by design, so they must be removed after launch to avoid dead flags and combinatorial test complexity. Converting it to an ops or experiment toggle merely shifts carrying cost instead of eliminating it.
Just read this? Test yourself on what you have been reading.
Read the original → martinfowler.com
- #feature flags
- #continuous delivery
- #architecture
- #deployment strategy
- #product strategy
You just looked this up. Could you explain it out loud?
That is the part interviews actually test. Tezvyn takes questions like this one and gives you what the interviewer is really checking, the answer that lands, and the mistake that ends the conversation, in the four minutes before your next meeting.
The iPhone app is on the way
We are building it. Until it lands, nothing here is held back from you: every interview card, your saved cards, streaks and the job board all work in Safari, plus hundreds of free practice quizzes of thirty questions each. Sign in and it all carries over to the app the day it arrives.
Want it as an icon? Tap Share at the bottom of Safari, then Add to Home Screen. It opens full screen and the cards you have read stay available offline.
We are hiring for this. Every open role lists the topics its interview covers, so you can prepare for the real thing rather than guessing.
See open roles