advanced 2 min answer

A globally distributed platform must roll out a change across regions. What order and what controls?

fly-iorolloutregionshaltcanary
Show the full answer Hide the answer

The order

Smallest blast radius first, and increasing. Typically: an internal or low-traffic region, then a single small customer-facing region, then progressively larger ones, with a soak period between each that is long enough to surface issues that do not appear immediately.

The soak period is the part that gets compressed under pressure, and it is where slow-building problems — memory growth, connection leaks, cache degradation — become visible.

The controls

  • Automated halt conditions per region, evaluated against that region's own baseline rather than a global one. A region with different traffic characteristics has a different normal.
  • A rollback that works per region, so a problem in one does not require reverting everywhere.
  • Configuration versioned and rolled with the same discipline as code, because a bad configuration propagates as fast as a bad deployment and is more likely to reach everywhere at once.
  • A rollback path that does not depend on the pipeline being rolled back, since the pipeline may be the thing that is broken.

The specific hazard of a fast global propagation capability

Anything that can push a change to every location in seconds can push an outage to every location in seconds. The capability that makes the platform responsive is the capability that makes a mistake total.

So: validation before propagation, staged rollout by region with automated halt, and a version scheme where "roll back to last known good" is a well-defined operation rather than a reconstruction.

The interaction with state

Stateless tiers roll independently; anything with regional state does not. A change to the data plane's behaviour must be compatible with the version running in other regions during the rollout window, which is the same expand-and-contract discipline applied across regions rather than across instances.

And a change to the routing or entity-homing logic is the highest-risk category, because it affects which region serves which customer — and a mistake there is not a degraded region but a wrong one.

What must keep working throughout

Static stability: customer traffic continues on last-known-good configuration if the control plane is mid-rollout or unavailable. A rollout that requires the control plane to be healthy has coupled the change process to the serving path, which is the arrangement in which a deployment becomes an outage.