fivenines
38/38
Lesson 3.10 99.999%

The final architecture

🔗 Connect

The last consolidation. One picture of everything, then the course's ideas ranked by transfer value — what you should carry to systems that have nothing to do with rides.

flowchart TB
  APPS["📱 Rider + driver apps — local replica, offline queue, hedging (3.6)"]
  PROBE["🤖 Synthetic probes (3.8)"]
  APPS --> EDGE["Global edge — anycast, city-to-home routing (3.2)"]
  PROBE --> EDGE
  EDGE --> R1
  EDGE --> R2
  EDGE --> R3
  subgraph R1 ["Region A — active"]
    direction TB
    RT1["Cell router (3.3)"]
    RT1 --> CA1["Cell A1: gateway, realtime, dispatch, trip, pricing, location — own shards + quorum groups (3.4)"]
    RT1 --> CA2["Cell A2"]
    RT1 --> CAN["Canary cell — deploys + chaos land first (2.8, 3.7)"]
  end
  subgraph R2 ["Region B — active"]
    RB1["Cells ×N"]
  end
  subgraph R3 ["Region C — active"]
    RC1["Cells ×N"]
  end
  R1 <-. "cross-region replication (3.2)" .-> R2
  R2 <-. " " .-> R3
  R1 <-. " " .-> R3
  subgraph ASYNC ["Asynchronous planes — shared, tier-isolated"]
    K[["Event backbone — outbox, idempotency law (2.4)"]]
    OBS["Observability — burn rates, correlator, auto-remediation (2.9, 3.8)"]
    LAKE[("Streaming lakehouse — surge v2, live ops, feature store, warehouse (2.10, 1.13)")]
    PAYP["Payments + ledger + fraud (1.8, 2.11) — T1, async from T0"]
  end
  R1 -.-> ASYNC
  R2 -.-> ASYNC
  R3 -.-> ASYNC
  subgraph CTRL ["Control plane — data plane survives its death (3.5)"]
    DEPL["Progressive delivery"]
    FLAGS["Flags + config"]
    HOMES["Home map + leases"]
  end
  CTRL -- "signed proposals, last-known-good adoption" --> R1
  CTRL -- " " --> R2
  CTRL -- " " --> R3
The complete exchange. Every box carries the lesson number where it earned its place — nothing in this diagram is decoration.

The ideas worth transferring, in rough order of generality: (1) Availability is arithmetic — serial chains multiply failure, so the deepest lever is always removing synchronous edges, not strengthening boxes (0.3 → 2.4 → 3.1). (2) Match guarantees to data value — at-most-once pings and exactly-once ledger effects in one system, each correct (1.4 vs 1.8). (3) State is quorum truth or rebuildable ephemera; the middle is where outages live (3.4). (4) Blast radius is a design axis you can buy by construction — shards, tiers, cells (2.3 → 3.3). (5) Recovery has a speed limit; past it, be already running (2.7 → 3.2). (6) The system that configures the system is the residual risk — fail static (2.8 → 3.5). (7) Claims about failure behavior decay; only continuously rehearsed claims stay true (3.7). (8) Each nine is an economic purchase; the tier lattice is the budget (2.1 → 3.9).

And the meta-lesson, kept for last because it is the course's method as much as its content: complexity was survivable — for the system and for you — because it arrived in dependency order, each layer built on schemas already consolidated, each simplification explicit about what it deferred. That is cognitive load theory, and it is also just good engineering: the two disciplines agree that the way to build something enormous is to make sure no single step ever requires holding more than a working memory's worth of new ideas. Now go draw the skeleton from memory one last time — then go build something.

Next step

See what actually stuck.

Take the practice scenarios now.