Introduction
Multi-Region databases are designed to keep applications available when a single AWS Region experiences an outage or serious degradation. Amazon DynamoDB Global Tables support this architecture by replicating data across Regions.
For applications where stale data is acceptable for a short period, multi-Region eventual consistency can be sufficient. Some workloads, however, require stronger guarantees. For example, an application processing account balances, inventory, reservations, or other sensitive state may need a read in one Region to reflect a successful write from another Region immediately.
DynamoDB Multi-Region Strong Consistency, or MRSC, addresses this requirement. It uses synchronous cross-Region replication and a quorum-based architecture to provide strong consistency across supported Regions. AWS documents MRSC as supporting a Recovery Point Objective (RPO) of zero, while also noting that cross-Region communication increases the latency of writes and strongly consistent reads.
Understanding what happens during a Regional failure is important before adopting MRSC. Strong consistency improves data guarantees, but it also introduces availability and latency considerations that application architects must understand.
What Is Multi-Region Strong Consistency?
DynamoDB Global Tables support two consistency modes:
Multi-Region eventual consistency (MREC)
Multi-Region strong consistency (MRSC)
MREC replicates changes asynchronously between replicas. MRSC synchronously replicates an item change to another participating Region before the write returns successfully. Strongly consistent reads against an MRSC replica return the latest version of the item.
A simplified MRSC architecture looks like this:
DynamoDB Global Table
|
+-------------+-------------+
| | |
v v v
Region A Region B Region C
Replica Replica Witness/
Replica
| | |
+-------------+-------------+
Quorum
MRSC deployments use three participating Regions, either as three replicas or two replicas and a DynamoDB-managed witness. The witness does not appear as a normal DynamoDB table in your AWS account.
How a Write Works
With a normal single-Region DynamoDB table, a successful write is completed within that Region.
With MRSC, the write has a multi-Region coordination requirement.
Conceptually:
Application
|
v
Region A
|
+----> Replication to participating Region
|
v
Quorum Established
|
v
Write Success
This additional coordination is what allows strongly consistent reads across participating Regions.
It also means that MRSC writes can have higher latency than writes against an MREC global table because cross-Region communication is involved. AWS recommends testing the intended Region combination against the application's latency requirements rather than assuming that all Region combinations will perform identically.
What Happens During a Regional Failure?
This is where the architecture becomes particularly important.
Suppose an MRSC global table has:
Region A
Region B
Region C
and Region A becomes unavailable.
The remaining participating Regions can continue servicing operations when the required quorum is available.
Conceptually:
Region A
X
|
| Regional failure
|
Region B <----> Region C
\ /
Quorum
The application still needs its traffic-routing layer to direct requests to a healthy application endpoint. DynamoDB Global Tables do not provide a single global endpoint that automatically moves application traffic between Regions. AWS recommends that applications use the local DynamoDB endpoint in the Region where the application is running and use application-level traffic routing during Regional problems.
This distinction is important:
DynamoDB replication provides data resilience, while application architecture provides traffic failover.
What If a Region Comes Back?
Suppose Region A goes offline and later becomes available again.
DynamoDB automatically catches the Region up with the global table. Until synchronization is complete, writes and strongly consistent reads directed to the recovering Region can return errors. Eventually consistent reads can return the data that has already propagated locally. No separate manual synchronization process is required to bring the replica back into alignment.
The application should therefore avoid immediately routing normal production traffic back to a recovering Region simply because the underlying infrastructure has become reachable.
Traffic recovery should consider application health as well as database synchronization state.
Strong Consistency Does Not Mean Everything Is Available During Failure
One of the easiest misconceptions is:
Strong consistency means every Region can continue serving every operation during every failure.
That is not how MRSC works.
The local Region can accept reads and writes while another participating Region is available to establish the required quorum. If a second Region or witness is unavailable, the local Region's capabilities are restricted; AWS documents that only eventually consistent reads can be serviced when the required quorum cannot be established.
This creates an important architectural trade-off.
Requirement | MRSC behavior |
|---|---|
Strong cross-Region reads | Supported |
RPO | Zero |
Cross-Region write coordination | Required |
Write latency | Higher than MREC in general |
Regional failure recovery | Requires application traffic failover |
Quorum dependency | Yes |
Automatic replica catch-up | Yes |
Strong consistency therefore needs to be evaluated together with availability requirements.
Handling Write Conflicts
MRSC supports active-active writes, meaning participating replicas can accept writes.
However, two Regions attempting to modify the same item at the same time can create a replicated write conflict.
DynamoDB reports this situation using:
ReplicatedWriteConflictException
A failed write can be retried after the conflicting operation has completed.
For example:
try
{
await dynamoDb.UpdateItemAsync(request);
}
catch (ReplicatedWriteConflictException)
{
// Apply an appropriate retry policy.
}
The retry strategy should use bounded retries and backoff rather than repeatedly sending requests without delay.
For important business operations, application-level concurrency controls should also be considered.
Design for Regional Traffic Failover
A multi-Region database does not automatically make the complete application multi-Region.
Consider this architecture:
Users
|
v
Global Traffic Router
|
+----> Application Region A
|
+----> Application Region B
|
+----> Application Region C
Each application region
|
v
Local DynamoDB endpoint
If Region A becomes unhealthy, the traffic-routing layer must detect the problem and move traffic to a healthy application Region.
The application should avoid sending normal requests across Regions simply to reach DynamoDB.
AWS specifically recommends that an application homed in a Region access the local DynamoDB endpoint rather than making cross-Region DynamoDB calls.
What About Transactions?
This is an important limitation to understand before migrating an existing application.
DynamoDB MRSC global tables do not support DynamoDB transaction APIs such as:
TransactWriteItems
TransactGetItems
AWS documents that these transaction APIs are not supported with MRSC global tables.
This can affect applications that currently rely heavily on DynamoDB transactions.
For example:
Update Account
+
Update Ledger
+
Create Audit Record
may currently be implemented as one transaction.
If the application moves to MRSC, this design must be reconsidered.
Do not assume that stronger cross-Region consistency automatically provides every transactional feature available in a single-Region table.
MRSC vs MREC
The two modes solve different architectural problems.
Area | MREC | MRSC |
|---|---|---|
Replication | Asynchronous | Synchronous coordination |
Cross-Region consistency | Eventual | Strong |
Write latency | Lower | Generally higher |
RPO | Greater than zero | Zero |
Region flexibility | Broad | Supported Region combinations are constrained |
Transactions | Supported with regional atomicity | Not supported |
Conflict model | Last-writer-wins for concurrent item updates | Conflicting writes can fail |
Best fit | Latency and availability with some staleness tolerance | Applications requiring strong global consistency |
AWS describes MREC as the default global-table mode and recommends considering MRSC when global strong consistency and an RPO of zero are more important than lower write latency.
Testing Regional Failure
A multi-Region architecture should not be considered disaster-ready simply because replicas exist.
Test the application behavior.
A useful failure scenario is:
1. Normal traffic
|
v
2. Region A active
|
v
3. Simulate Region A failure
|
v
4. Route traffic to Region B
|
v
5. Validate reads and writes
|
v
6. Restore Region A
|
v
7. Verify catch-up
|
v
8. Gradually restore traffic
AWS Fault Injection Service can be used with DynamoDB Global Tables to perform controlled experiments involving Regional isolation and validate application recovery behavior.
The important goal is to test the entire stack rather than only DynamoDB.
Monitoring During a Failure
Your monitoring should cover both database and application health.
Useful signals include:
Application error rate
Request latency
DynamoDB throttling
Failed strongly consistent reads
ReplicatedWriteConflictExceptionTraffic-routing changes
Replica status
Recovery progress
Regional health
Business transaction failures
A simple operational flow is:
Application Metrics
|
v
Regional Health
|
v
DynamoDB Health
|
v
Traffic Decision
|
v
Recovery Validation
The goal is to detect a Regional problem before business users experience a prolonged failure.
Common Mistakes
Assuming Global Tables Automatically Provide Application Failover
They replicate data, but your application still needs traffic-routing and failover logic.
Choosing MRSC Only for Disaster Recovery
If the application does not require strong cross-Region consistency, MRSC's additional coordination and latency may not be necessary.
Ignoring Transaction Limitations
Existing applications using DynamoDB transaction APIs need architectural review before migrating to MRSC.
Sending Cross-Region DynamoDB Requests
Applications should generally use the local DynamoDB endpoint rather than manually directing normal traffic across Regions.
Ignoring Write Conflicts
Active-active writes can still conflict when multiple Regions modify the same item.
Testing Only the Database
A Regional outage affects compute, networking, authentication, queues, APIs, and traffic routing too.
Best Practices
Define whether the application actually requires global strong consistency.
Compare MRSC and MREC against the application's RPO and latency requirements.
Test the selected Region combination before production deployment.
Keep application traffic and DynamoDB access Region-local.
Implement health-based traffic failover.
Handle
ReplicatedWriteConflictExceptionwith bounded retries.Review transaction requirements before choosing MRSC.
Test complete Regional failure scenarios.
Monitor database and application health together.
Document the recovery procedure for operators.
Validate business transactions after failover.
Test recovery again after major architecture changes.
Advantages and Disadvantages
Advantages | Disadvantages |
|---|---|
Provides strong cross-Region consistency | Cross-Region coordination increases latency |
Supports an RPO of zero | Requires careful Region selection |
Supports active-active writes | Concurrent writes can produce conflicts |
Automatically catches up a recovering Region | Application traffic failover still needs to be designed |
Useful for workloads sensitive to stale data | MRSC does not support DynamoDB transactions |
Reduces dependence on manual data synchronization | Operational design is more complex than single-Region DynamoDB |
Production Checklist
[ ] MRSC is required by a documented business requirement
[ ] RPO and RTO are defined
[ ] Region selection has been tested
[ ] Application traffic failover is implemented
[ ] Applications use local DynamoDB endpoints
[ ] Write conflicts have a retry strategy
[ ] DynamoDB transaction dependencies have been reviewed
[ ] Regional failure testing has been performed
[ ] Recovery monitoring is configured
[ ] Business workflows are validated after failover
[ ] Operators have a documented recovery procedure
[ ] Replica recovery behavior has been tested
Summary
DynamoDB Multi-Region Strong Consistency provides a way to maintain strong cross-Region data consistency while building applications that can survive Regional failures.
Its main benefit is the consistency guarantee: successful writes are synchronously replicated to support strongly consistent reads across participating Regions, with AWS documenting an RPO of zero. The trade-off is additional cross-Region coordination, higher latency for writes and strongly consistent reads, and architectural limitations such as the lack of DynamoDB transaction APIs in MRSC.
A resilient architecture also needs more than a multi-Region table. Application traffic must be routed between healthy Regions, workloads should normally access local DynamoDB endpoints, and failure scenarios should be tested rather than assumed.
MRSC is therefore best understood as one component of a broader multi-Region architecture. The database can provide strong consistency and automatic replica recovery, while the application remains responsible for routing, authorization, retries, observability, and business-level recovery.
Join the conversation! Your thoughts help the community grow.