Multi-Region Database Architecture
Multi-region database architecture places related database replicas in separate geographic regions. It keeps data near distant users or preserves service through a regional outage, while making latency, consistency, failover, and data-location tradeoffs explicit.
itDatabases and data storage | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Don't Panic
Don't Panic - Multi-Region Database Architecture
Multi-region database architecture runs one logical data service across two or more geographic regions. Each region holds a replica, shard, or cluster that participates in reading, writing, replication, or recovery. The design reduces distance to users and provides another location when a region fails. It also makes network delay and partition behavior into database constraints.
A region is a provider-defined geographic area. Availability zones inside one region protect against local failures; they do not create regional isolation. Crossing the region boundary puts replication on a wide-area network with higher and more variable latency.
A request reaches an application, which chooses a database endpoint based on write authority, read consistency, and data-location rules. Synchronous replication waits for enough voting replicas before commit. Asynchronous replication acknowledges earlier and ships updates later, creating lag and a possible recovery-point gap.
Replicas are not interchangeable. Read-only replicas serve local reads. Voting replicas participate in commit. Multi-active designs accept writes in more than one region and therefore need coordination or deterministic conflict resolution. Local reads that skip the writer can be stale relative to a just completed write elsewhere.
Read the Intro for the data path and consistency choices. Use the Cheatsheet when you need the replica-role map. Landscape and Timeline place multi-region patterns among related data platforms. Measure twice when the stakes are operational. Measure twice when the stakes are operational. Measure twice when the stakes are operational. Measure twice when the stakes are operational. Measure twice when the stakes are operational.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://www.podc.org/podc2000/brewer.html
Supports
- Eric Brewer's invited PODC 2000 talk, Towards Robust Distributed Systems
- The origin of the consistency, availability, and partition-tolerance tradeoff discussion
- https://groups.csail.mit.edu/tds/lynch-pubs.html
Supports
- Gilbert and Lynch's June 2002 publication and formal asynchronous-network result
- The distinction between partition conditions and permanent two-of-three slogans
- https://research.google/pubs/bigtable-a-distributed-storage-system-for-structured-data/
Supports
- Bigtable's 2006 OSDI publication and large-scale distributed structured storage
- https://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf
Supports
- Dynamo's October 2007 SOSP publication
- Highly available key-value storage, replication, partitioning, and eventual consistency design
- https://research.google/pubs/spanner-googles-globally-distributed-database-2/
Supports
- Spanner's 2012 OSDI publication
- Synchronous global replication, externally consistent transactions, MVCC, and clock uncertainty
- https://docs.cloud.google.com/spanner/docs/replication
Supports
- Leaders, voting replicas, read-only replicas, witnesses, Paxos write quorums, strong reads, and stale reads
- Geographic locality and the latency effect of voting-replica placement
- https://docs.cloud.google.com/spanner/docs/instance-configurations
Supports
- Regional, dual-region, and multi-region boundaries and placement
- Default leader regions and multi-region tradeoffs
- https://docs.cloud.google.com/spanner/docs/true-time-external-consistency
Supports
- External consistency, TrueTime uncertainty, transaction timestamps, and consistent cross-region reads
- https://www.cockroachlabs.com/docs/stable/multiregion-overview/
Supports
- Database regions, primary regions, survival goals, table localities, and data domiciling
- Home-region placement at table and row scope
- https://www.cockroachlabs.com/docs/stable/multiregion-survival-goals
Supports
- Zone and region survival goals, minimum region count, replica placement, and write-latency cost
- https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GlobalTables.html
Supports
- Multi-region replica tables, multi-active reads and writes, business continuity, and consistency modes
- https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/V2globaltables_HowItWorks.html
Supports
- Asynchronous replication, multi-region eventual consistency, last-writer-wins conflict resolution, and regional failover behavior
- https://learn.microsoft.com/en-us/azure/cosmos-db/distribute-data-globally
Supports
- Global region placement, local reads and writes, replication, multi-region writes, and consistency choices
- https://learn.microsoft.com/en-us/azure/cosmos-db/consistency-levels
Supports
- Strong, bounded-staleness, session, consistent-prefix, and eventual consistency semantics
- https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html
Supports
- One primary region, read-only secondary regions, asynchronous replication, switchovers, failovers, and global writer routing
- https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-secondary-availability.html
Supports
- Cross-region replication lag monitoring and secondary-region service behavior
- https://learn.microsoft.com/en-us/azure/azure-sql/database/failover-group-sql-db
Supports
- Cross-region failover groups, stable listeners, readable secondaries, planned failover, forced failover, RTO, RPO, and end-to-end dependency recovery
- https://www.mongodb.com/docs/atlas/global-clusters/
Supports
- Global write zones, regional shard placement, and local read and write routing
- https://github.com/sindresorhus/awesome
Supports
- Required discovery starting point for curated awesome lists
- https://github.com/oxnr/awesome-bigdata
Supports
- Discovery of CockroachDB, FoundationDB, and Citus as distributed database projects
- https://apple.github.io/foundationdb/configuration.html
Supports
- FoundationDB replication modes, coordinators, process classes, and datacenter-aware configuration
- https://docs.citusdata.com/en/stable/
Supports
- Citus sharding, distributed tables, and PostgreSQL extension architecture
- https://azure.microsoft.com/en-us/blog/azure-cosmos-db-microsofts-globally-distributed-multi-model-database-service/
Supports
- Azure Cosmos DB general availability on 2017-05-10 and global distribution at launch
- https://aws.amazon.com/about-aws/whats-new/2017/11/aws-launches-amazon-dynamodb-global-tables/
Supports
- DynamoDB Global Tables launch on 2017-11-29 and multi-region multi-active replication
- https://aws.amazon.com/about-aws/whats-new/2018/11/announcing-amazon-aurora-global-database/
Supports
- Aurora Global Database announcement on 2018-11-27 and primary-to-secondary cross-region design
- https://cloud.google.com/spanner
Supports
- Google Cloud Spanner managed database offering
- https://www.cockroachlabs.com/product/cockroachdb/
Supports
- CockroachDB managed and self-hosted product forms
- https://docs.yugabyte.com/stable/explore/multi-region-deployments/
Supports
- YugabyteDB multi-region deployment, leader placement, replication, and row-level geolocation
- https://azure.microsoft.com/en-us/products/cosmos-db
Supports
- Azure Cosmos DB managed global database offering
- https://aws.amazon.com/dynamodb/global-tables/
Supports
- DynamoDB Global Tables managed multi-region offering
- https://aws.amazon.com/rds/aurora/global-database/
Supports
- Aurora Global Database managed cross-region offering
- https://www.mongodb.com/atlas/database
Supports
- MongoDB Atlas managed database offering and global deployment options
- https://azure.microsoft.com/en-us/products/azure-sql/database
Supports
- Azure SQL Database managed service used with cross-region failover groups
