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
Intro
Multi-region database architecture runs one logical data service across two or more geographic regions. Each region contains a database replica, shard, or cluster that participates in reading, writing, replication, or recovery. The architecture reduces distance between users and data and gives an application another location when a region fails. It also turns network delay and partition behavior into database design constraints.
A region is a provider-defined geographic area. Availability zones inside one region protect against local infrastructure failures, but they do not create regional isolation. A multi-region design crosses the region boundary. That distinction matters because replication traffic now traverses a wide-area network with higher and more variable latency.
The data path
A request first reaches an application instance through global traffic routing. The application chooses a database endpoint based on the workload's write authority, read consistency, and data-location rules. A local replica can answer some reads without a cross-region round trip. A write may need to reach one primary region, a partition's home region, or a quorum of voting replicas.
The database records the write locally and propagates it according to its replication model. Synchronous replication waits for enough voting replicas to acknowledge before commit. This can preserve strong consistency across regions, but the commit path includes wide-area latency. Asynchronous replication acknowledges earlier and sends the update later. It lowers foreground write latency, but creates replication lag and a possible recovery point gap.
Replicas are not automatically interchangeable. A read-only replica can serve local reads but cannot accept writes. A voting replica participates in commit decisions. A witness can vote without storing a complete copy. A multi-active replica accepts writes in more than one region and therefore needs either coordination before commit or a deterministic way to reconcile concurrent updates.
Continue the course
This section is part of the paid course.
See pricing to subscribe, or log in if you already have access.
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
