SAABlog
DatabaseIntermediate

DynamoDB Global Tables: Multi-Region Active-Active Database

Learn how to configure multi-region Active-Active replication with AWS DynamoDB Global Tables. Build 99.999% availability and low-latency global services.

PHILOLAMB-Updated: January 31, 2026
DynamoDBGlobal TablesMulti-RegionActive-ActiveReplication

Related Exam Domains

  • Design Resilient Architectures
  • Design High-Performing Architectures

Key Takeaway

DynamoDB Global Tables provide Active-Active replication across multiple AWS regions, allowing reads and writes from any region. It offers 99.999% SLA, higher than single-region's 99.99%, and guarantees low-latency access for global users.

Exam Tip

Exam Essential: "Low-latency database access for global users?" → DynamoDB Global Tables. "Multi-region Active-Active database?" → Global Tables. "99.999% availability?" → Global Tables.


1. What are Global Tables?

Concept

DynamoDB Global Tables is a fully managed solution that automatically creates and synchronizes table replicas across selected AWS regions.

┌─────────────────────────────────────────────────────────┐
│           DynamoDB Global Tables Architecture            │
├─────────────────────────────────────────────────────────┤
│                                                         │
│   Seoul Region       Tokyo Region       Virginia Region │
│   ┌──────────┐      ┌──────────┐      ┌────────┐       │
│   │ Replica  │ ◀───▶│ Replica  │ ◀───▶│Replica │       │
│   │ (Active) │Bidir.│ (Active) │Bidir.│(Active)│       │
│   └────┬─────┘ Repl └────┬─────┘ Repl └───┬────┘       │
│        │                 │                │            │
│        ▼                 ▼                ▼            │
│   Korea Users       Japan Users       US Users         │
│   (Local R/W)       (Local R/W)      (Local R/W)       │
│                                                         │
│   Feature: All replicas are Active (read + write)      │
└─────────────────────────────────────────────────────────┘

Key Features

FeatureDescription
Active-ActiveRead/write possible in all regions
Auto ReplicationAutomatic data sync between regions
Fully ManagedNo replication infrastructure management
ConsistencyEventual Consistency
SLA99.999% availability

2. Why Use Global Tables?

Single Region vs Global Tables

FeatureSingle RegionGlobal Tables
Availability SLA99.99%99.999%
Disaster RecoveryManual backup/restoreAuto replication, instant failover
LatencyHigh for remote usersLow with local region access
Writable Regions1All replica regions

Use Cases

┌─────────────────────────────────────────────────────────┐
│              Global Tables Use Cases                     │
├─────────────────────────────────────────────────────────┤
│                                                         │
│  1️⃣ Global Gaming Services                              │
│     - Low-latency game data for worldwide players       │
│     - Save/load game state from any region              │
│                                                         │
│  2️⃣ Global E-commerce                                   │
│     - Product catalogs, shopping cart data              │
│     - Regional inventory management                     │
│                                                         │
│  3️⃣ Financial Services                                  │
│     - Real-time transaction data                        │
│     - Instant failover on region failure                │
│                                                         │
│  4️⃣ IoT Data Collection                                 │
│     - Collect sensor data globally                      │
│     - Record data in nearest region                     │
└─────────────────────────────────────────────────────────┘

3. Setting Up Global Tables

Prerequisites

RequirementDescription
Empty TableRecommended to start with empty table
DynamoDB StreamsAutomatically enabled
Same Table NameSame name across all regions
Same Key SchemaIdentical partition key and sort key

Console Setup

1. DynamoDB Console → Select table
2. Global Tables tab → Create replica
3. Select target regions (e.g., Tokyo, Virginia)
4. Click Create → Automatic replication starts

CLI Setup

# Add global table replica
aws dynamodb update-table \
  --table-name MyGlobalTable \
  --replica-updates '[
    {
      "Create": {
        "RegionName": "ap-northeast-1"
      }
    }
  ]'

Converting Existing Tables to Global Tables

Existing tables with data can be converted to global tables:

Conversion Process:
1. Create snapshot of source table
2. Create replica in new region
3. Initialize replica with snapshot
4. Start real-time replication

⚠️ Table remains usable during conversion (no downtime)

4. Data Consistency and Conflict Resolution

Eventual Consistency

Global Tables use an eventual consistency model. There's a slight delay before data written in one region is replicated to others.

┌─────────────────────────────────────────────────────────┐
│                 Replication Latency                      │
├─────────────────────────────────────────────────────────┤
│                                                         │
│  Write in Seoul:  T = 0ms                               │
│       │                                                 │
│       ▼                                                 │
│  Read in Seoul:   T = 0ms (immediate)                   │
│  Read in Tokyo:   T = ~1 second (after replication)     │
│                                                         │
│  Typical replication delay: Under 1 second              │
│  (varies with network conditions)                       │
└─────────────────────────────────────────────────────────┘

Conflict Resolution: Last Writer Wins

When the same item is modified simultaneously in multiple regions, conflicts can occur.

┌─────────────────────────────────────────────────────────┐
│           Conflict Resolution: Last Writer Wins          │
├─────────────────────────────────────────────────────────┤
│                                                         │
│  Time    Seoul Region            Tokyo Region           │
│  ─────────────────────────────────────────────────────  │
│  T1      Item.name = "A"        (pending replication)   │
│  T2      (pending replication)  Item.name = "B"         │
│  T3      Replication complete   Replication complete    │
│          └──────────────────────────────────────┘       │
│                      Result: "B" (T2 > T1)              │
│                                                         │
│  Rule: Write with later timestamp becomes final value   │
└─────────────────────────────────────────────────────────┘

Exam Tip

Exam Point: Global Tables use eventual consistency, and conflicts are resolved with Last Writer Wins. If strong consistency is required, consider single-region use.


5. Multi-Region Strong Consistency (MRSC)

New Feature (Released 2024)

Multi-Region Strong Consistency (MRSC) is a new feature providing strong consistency for global tables.

MRSC Features

FeatureDescription
ConsistencyStrong consistency across regions
RPOZero RPO (no data loss)
RegionsMinimum 3 regions required
Configuration3 replicas or 2 replicas + 1 witness

MRSC Architecture

┌─────────────────────────────────────────────────────────┐
│              MRSC Architecture (3 Regions)               │
├─────────────────────────────────────────────────────────┤
│                                                         │
│   Option 1: 3 Replicas                                  │
│   ┌────────┐     ┌────────┐     ┌────────┐             │
│   │Replica │ ◀──▶│Replica │ ◀──▶│Replica │             │
│   │ Seoul  │     │ Tokyo  │     │Virginia│             │
│   └────────┘     └────────┘     └────────┘             │
│                                                         │
│   Option 2: 2 Replicas + 1 Witness                      │
│   ┌────────┐     ┌────────┐     ┌────────┐             │
│   │Replica │ ◀──▶│Replica │ ◀──▶│Witness │             │
│   │ Seoul  │     │ Tokyo  │     │(No data)│             │
│   └────────┘     └────────┘     └────────┘             │
│                                                         │
│   Witness: Stores change data only, no full table copy  │
└─────────────────────────────────────────────────────────┘

6. Cost Considerations

Cost Components

ItemDescription
Read/Write CapacityCharged per region
Replicated Write CapacityCharged for replication writes (rWCU)
StorageCharged per region
Data TransferCross-region replication transfer costs

Cost Optimization Tips

1. Select Only Needed Regions
   └── No replicas needed in regions without users

2. On-Demand vs Provisioned
   └── Choose based on traffic patterns

3. Enable Auto Scaling
   └── Independent scaling per region

4. Recent Price Reduction (up to 67%)
   └── Global tables costs significantly reduced

7. Design Best Practices

Partition Key Design

Partition key design remains critical for global tables:

Good Partition Keys:
├── High cardinality values (UserID, SessionID)
├── Even data distribution
└── Avoid hot partitions

Patterns to Avoid:
├── Region code as partition key (uneven distribution)
├── Date only (hot partition)
└── Sequential values (write concentration)

Application Design

┌─────────────────────────────────────────────────────────┐
│           Application Design Recommendations             │
├─────────────────────────────────────────────────────────┤
│                                                         │
│  1. Local Region Access                                 │
│     └── Use replica in user's nearest region            │
│                                                         │
│  2. Minimize Conflicts                                  │
│     └── Avoid simultaneous modification in multiple     │
│         regions                                         │
│     └── Consider assigning users to specific regions    │
│                                                         │
│  3. Consider Eventual Consistency                       │
│     └── Design logic accounting for replication delay   │
│     └── Be careful with read-after-write patterns       │
│                                                         │
│  4. Failover Testing                                    │
│     └── Regularly test region failover                  │
└─────────────────────────────────────────────────────────┘

8. Global Tables vs Other Replication Options

Comparison

FeatureGlobal TablesDynamoDB Streams + LambdaManual Replication
ManagementFully managedSemi-automaticManual
Active-ActivePossible (complex)Possible (very complex)
Conflict ResolutionAutomaticManual implementationManual implementation
LatencyUnder ~1 secondSeveral secondsVariable
CostrWCU chargesLambda + transfer costsVariable

Exam Focus Points

Common Question Types

  1. Scenario-based Selection

    • "Low-latency database for global users?" → Global Tables
    • "99.999% availability needed?" → Global Tables
    • "Multi-region Active-Active writes?" → Global Tables
  2. Consistency Related

    • "Global Tables consistency model?" → Eventual consistency (default)
    • "Conflict resolution method?" → Last Writer Wins
  3. Setup Related

    • "Downtime when converting to global tables?" → None
    • "DynamoDB Streams required?" → Automatically enabled

Exam Tip

Key Memorization:

  • Global Tables = Active-Active multi-region
  • Availability SLA = 99.999% (single region: 99.99%)
  • Consistency = Eventual consistency (default)
  • Conflict resolution = Last Writer Wins

FAQ

Q1: Are global table replicas read-only?

No. All global table replicas support both reads and writes (Active-Active). Different from RDS read replicas.

Q2: What is the replication latency?

Typically under 1 second. However, it can vary depending on network conditions and data size.

Q3: Can I allow writes only in specific regions?

DynamoDB itself doesn't support this. You can route write traffic to specific regions only using Route 53 at the application level.

Q4: Can I convert existing tables with data to global tables?

Yes. You can convert existing tables to global tables without downtime. DynamoDB automatically creates snapshots and initializes new replicas.

Q5: Are GSIs replicated in global tables?

Yes. Global Secondary Indexes (GSI) are automatically created and synchronized across all replicas.


Summary

DynamoDB Global Tables are the optimal choice when you need a global-scale Active-Active database:

  • 99.999% availability for highest resilience
  • Low-latency local region access
  • Fully managed for minimal operational burden

For exams, remember keywords "multi-region Active-Active" and "global low-latency database" point to Global Tables.