Freeze the deploys, not the flags
Your change freeze starts Monday. Can anyone still turn on a feature for 100% of users on Tuesday?
Most freezes are written about deploys: no merges to main, no releases after Wednesday. That covers the code. It says nothing about the flag dashboard, where one click changes what production does for every customer, with no pipeline and no review.
So the freeze has a gap. A product manager finishes the campaign page early and ramps the flag to 100% on the busiest day of the year. Nothing was deployed, so nobody checked.
The opposite mistake is just as common: freeze everything, including the switch that turns a failing feature off. Then an incident starts and the first step is asking for an exception.
Split flag changes into two kinds
- Adds risk: new rollouts, wider percentages, new rules on live flags. Frozen.
- Removes risk: turning a feature off, shedding optional load, reverting to the last known good variant. Always allowed.
For the second kind to work on a bad day, the flags need to exist before the freeze. Give every new feature a kill switch variant, and write down which flags on-call may flip without asking.
import Featureflow from 'featureflow-node-sdk';
const featureflow = Featureflow.init({
apiKey: process.env.FEATUREFLOW_SERVER_KEY,
withFeatures: [
// If rules can't load, the expensive path stays off.
new Featureflow.Feature('personalised-homepage', 'off').build(),
],
});
if (featureflow.evaluate('personalised-homepage', flagUser(user)).is('on')) {
return renderPersonalised(user);
}
return renderStatic();The unflagged path is the one you trust during the freeze. The flagged path is the one you can drop in seconds.
Enforce the freeze with approvals
A freeze that lives in a Slack message works until someone misses the Slack message. Put the rule where the change is made: require approval for production changes for the freeze window, and make sure the audit trail shows who changed what. In Featureflow, approvals and the audit trail are part of every plan, and the docs cover the setup.
This week, list the flags on-call may turn off during the freeze, and check each one has an off variant that works.
#FeatureFlags#ChangeFreeze#KillSwitch#ContinuousDelivery#DevOps
Keep the off switch, freeze the rest
Start free with Featureflow. Require approval on production changes and keep an audit trail of every flip.
Start Now (Free)Related Articles
Don't cache the answer to a feature flag
A cached page remembers the first visitor's flag, and your kill switch waits for the TTL. Evaluate per request and put the variant in the cache key.
What to put in the user you pass to a feature flag
The flag context starts as an id and ends up holding emails and names that no rule reads. Use an opaque id, pass only the attributes your rules compare, and build the user in one place.
Retiring an API version without a surprise outage
A shutdown date hits every client at once, including the cron job nobody owns. Gate v1 with a per-client flag, brown out a slice of traffic, and turn a client back on if they still need the old routes.