flowchart TB
users(["Users"]) --> dns["Global DNS<br/><i>latency routing + health checks</i>"]
subgraph r1["Region: primary"]
direction TB
lb1["Load Balancer<br/><i>public</i>"]
subgraph az1["Zone A"]
n1["Node Pool<br/><i>api ×3, worker ×2</i>"]
end
subgraph az2["Zone B"]
n2["Node Pool<br/><i>api ×3, worker ×2</i>"]
end
subgraph az3["Zone C"]
n3["Node Pool<br/><i>api ×2, worker ×1</i>"]
end
db1[("Primary DB<br/><i>synchronous replica in Zone B</i>")]
lb1 --> n1
lb1 --> n2
lb1 --> n3
n1 --> db1
n2 --> db1
n3 --> db1
end
subgraph r2["Region: secondary"]
direction TB
lb2["Load Balancer<br/><i>warm</i>"]
n4["Node Pool<br/><i>api ×2, scaled down</i>"]
db2[("Read Replica<br/><i>asynchronous — RPO 30s</i>")]
lb2 --> n4 --> db2
end
dns --> lb1
dns -.->|"failover only"| lb2
db1 -.->|"async replication"| db2
Deployment Diagram
Which runtime artifact runs on which infrastructure, in which zone and region, and what fails when one of those boundaries fails.