rollfuse
← Back to blog

From a Manual Redeploy to an Automatic Rollback: a Hypothetical Walkthrough

Rollback time is the gap between "something looks wrong" and "users are back on the version that worked". This walkthrough uses an invented team to show where that time goes when a rollback means redeploying, what changes when the release sits behind a guarded rollout, and how to measure the difference on your own system.

Before: rollback means a redeploy

Picture a team that ships checkout releases without a guarded rollout: deploy to 100%, watch the dashboards, and if something looks wrong, start a manual rollback. Without a flag-based release, that rollback is a full redeploy of the previous image, not the flip of a switch.

Most of the time in that path is mechanical, not decision time:

  • someone has to notice the problem, often through a support ticket or a dashboard;
  • the right engineer has to be paged and confirm the diagnosis;
  • the deploy pipeline has to build or fetch the previous version and roll it out.

Every one of those steps happens while the bad release is serving all of checkout traffic.

After: a staged rollout with a guardrail

Now the same team puts the new checkout behavior behind a feature flag and releases it with a staged rollout, for example 5%, 25%, 50% and then 100% of traffic, with a p95 latency guardrail on the checkout endpoint.

Two things change:

  • Detection is automatic. rollfuse evaluates the guardrail periodically against the average of the metric over its evaluation window. Nobody has to notice a dashboard first.
  • Reverting is a configuration change, not a deploy. When the guardrail's threshold is breached, rollfuse aborts the rollout through the same path as a manual abort, and the flag goes back to serving its default variation to everyone in that environment. The old code path is still in the running binary, so no pipeline has to run.

The rollout stops at whatever stage it has reached. If the regression breaches the threshold while the rollout is at 5%, the other 95% of traffic never sees it.

The trade-off

Reaching 100% takes longer in the normal case, because the rollout ramps through its stages instead of shipping at once. It's a fair objection: you're buying a faster, smaller bad day with a slower good day.

It also only protects what the guardrail watches. A p95 guardrail can stay quiet while p99 degrades, which this illustrative near-miss walks through. And the existing on-call rotation, dashboards and deploy pipeline stay in place: a guarded rollout sits on top of the release process, it doesn't replace it.

How to measure it on your own team

We don't have customer numbers to share, so the honest way to know what this is worth for you is to measure it. Track these for a few releases before and after:

  • Time to detect: from the moment the regression starts to the moment something reacts (a person or a guardrail).
  • Time to revert: from detection to users being back on the working behavior.
  • Exposure at revert: what share of traffic was on the bad version when it was reverted.

rollfuse records each guardrail evaluation with its time, the metric value, the threshold and the action taken, which gives you the timestamps for the "after" side. The automatic guardrail rollback tutorial shows how to set it up and read that history, and deployment guardrails covers the idea in more depth.