fivenines
28/38
Lesson 2.12 99.99%

Recap: the four-nines checklist

🔗 Connect

Consolidation again. Part 2 in one claim: no single failure — instance, zone, shard, dependency, deploy, or region — requires a human to keep the exchange inside its SLO. Verify it against the 1.14 table.

1.14 failure rowPart 2 answerMechanism
Database primary dies~20 s automated failover, zero lossQuorum orchestrator + fencing + client retries (2.3)
Bad deploy1% blast radius, auto-rollback in minutesCanary + metrics gate + flags (2.8)
Vendor brownoutFeature degrades, flow survivesTimeouts, breakers, bulkheads, fallbacks (2.6)
Traffic spikeT0/T1 goodput preservedTiered shedding + N+1 floors (2.6, 2.2)
Cascade via sync callsFan-out decoupled, consumers replayOutbox + event log + idempotency law (2.4)
Matcher state loss~15 s rebuild, invariants intactLeases + rebuild-from-stream (2.5)
Region failure~12 min evacuation, bounded RPOWarm standby + rehearsed runbook (2.7)
Detection for all of the abovePages proportional to user harmFlow SLIs + burn-rate alerts (2.1, 2.9)
flowchart LR
  F["Any single failure"] --> DET["Detected by burn-rate SLIs — seconds to minutes"]
  DET --> REC["Recovered by automation — no human in loop"]
  REC --> CON["Contained by shards, tiers, bulkheads, canaries"]
  CON --> OK["SLO holds: ≤ 4 m 23 s per 30 d"]
  F -. "the residual" .-> GAP["Region failover still costs ~12 min — one event can exceed a year at five nines"]
  GAP --> P3["Part 3: stop failing over. Be already there."]
Four nines achieved — and its residual: recovery that takes minutes is incompatible with a budget measured in seconds. Part 3's thesis in one line: stop recovering, start pre-existing.
Next step

See what actually stuck.

Take the practice scenarios now.