flowchart TB
u(["Users"]) --> gslb["Global traffic manager<br/><i>health + latency routing</i>"]
subgraph ra["Region A — write primary"]
direction TB
a1["Edge + API"]
a2["Services"]
a3[("Primary DB<br/><i>accepts writes</i>")]
a1 --> a2 --> a3
end
subgraph rb["Region B — read + standby"]
direction TB
b1["Edge + API"]
b2["Services"]
b3[("Replica<br/><i>read only · lag < 2s</i>")]
b1 --> b2 --> b3
end
gslb -->|"reads: nearest"| a1
gslb -->|"reads: nearest"| b1
gslb -->|"writes: always A"| a1
b2 -.->|"write forwarding<br/>+45ms"| a2
a3 ==>|"async replication"| b3
arb{{"Failover arbitration<br/><i>manual promote · documented<br/>RPO ≤ 2s · RTO 15 min</i>"}}
arb -.-> a3
arb -.-> b3
Multi-Region Topology
How many regions serve traffic, where writes are allowed, how data converges, and what the split-brain answer is.