techdiagrams.net
← All templates

Multi-region active-active SaaS

Two live regions with homed tenants, strict regional isolation on the request path, hub-and-spoke event replication and a witness region for honest failover.

Open in editor — free, no login Download JSON
REGION A — US-EAST · FULLY SELF-SUFFICIENTREGION B — EU-WEST · FULLY SELF-SUFFICIENTclosest regionregion-local onlyregion-local onlyasync replicationasync replicationmembership · quorumGlobal DNS / anycastlatency-based routingGatewayus-eastAppserves tenants homed A-MDB (region A)owner of A-M writesGatewayeu-westAppserves tenants homed N-ZDB (region B)owner of N-Z writesReplication hubasync · ordered per tenantWitness regionquorum tiebreaker · no data planethe golden rule: region B failing must not addone millisecond to region A. If a request crossesregions synchronously, you built one regionwith extra steps.

What this design does

Both regions serve traffic all the time — but every tenant has a home region, and a request never crosses regions synchronously: the failure of region B must not add a single millisecond to region A. State converges through an asynchronous replication bus, and a tiny witness region provides the quorum tiebreaker so failover decisions don't depend on the two parties that might be partitioned from each other. Failover flips tenant homing at the DNS layer; it never turns cross-region calls on.

The patterns it composes

Import it, attach your own numbers, and verify the design against failures — or read the engineering notes.