flowchart TB
subgraph pri["Primary site"]
direction TB
p1["Application tier"]
p2[("Transactional DB")]
p3[("Object storage")]
p4["Secrets + config"]
end
subgraph dr["Recovery site — warm"]
direction TB
d1["Application tier<br/><i>scaled to 0 · IaC ready</i>"]
d2[("DB replica<br/><i>async · lag < 30s</i>")]
d3[("Storage replica<br/><i>cross-region · 15 min</i>")]
d4["Secrets replicated"]
end
p2 ==>|"async"| d2
p3 ==>|"async"| d3
p4 ==>|"sync"| d4
subgraph run["Recovery sequence — tested 2026-05-18"]
direction TB
s1["1. Declare · 5 min"]
s2["2. Promote replica · 8 min"]
s3["3. Scale app tier · 6 min"]
s4["4. Repoint DNS · 5 min<br/><i>TTL 60s</i>"]
s5["5. Verify + reconcile · 12 min"]
s1 --> s2 --> s3 --> s4 --> s5
end
dr --> run
run --> res(["Restored — measured RTO 36 min"])
Deployment & Infrastructure View
Disaster Recovery Topology
What is replicated where, in what order recovery happens, and the tested time each step takes.
Disaster Recovery
Design