Problem
A single region is a single failure domain. A regional outage takes the product offline, and distant users experience high latency. Data residency laws may also require data to stay in specific places.
Also known as: geo-distributed-deployment, active-active-regions
Run a service in several geographic regions for lower latency, higher availability and resilience to regional failure.
A single region is a single failure domain. A regional outage takes the product offline, and distant users experience high latency. Data residency laws may also require data to stay in specific places.
Multi-region deployment spreads a service across geographic regions. It protects against the loss of an entire region, which multi-zone designs cannot, and puts compute closer to users.
Traffic enters through global routing that checks health and proximity. Each region runs a full, self-sufficient stack. Data placement decides the model.
global DNS / anycast LB
/ \
region A region B
app + cache app + cache
DB primary <--async--> DB replica
Common data models: active-passive, with a replica promoted on failure; active-active with per-user home region; or multi-leader with conflict resolution such as last-write-wins or CRDTs. Capacity planning rule: with N regions, each should carry enough headroom to absorb its share of a failed one, roughly one over N minus 1 extra load.
High - duplicate stacks, cross-region transfer and replication
High - per-region rollouts and failover drills
High - consistency, routing and conflict resolution
Surviving region lacks capacity for failover traffic
Split brain after replication partition leads to conflicting writes
Failover automation was never tested and fails in the real event