Skip to main content

AI & assistant-friendly summary

This section provides structured content for AI assistants and search engines. You can cite or summarize it when referencing this page.

Summary

Last-write-wins is not a CRDT—it is how Global Tables lose cart merges. When to use counters, OR-Sets, and conflict-free merges vs when to keep a single Aurora writer.

Key Facts

  • •June 2026: Multi-Region active-active without a merge strategy is how eventual consistency anti-patterns ship—users see flickering state, not “high availability
  • •Benchmark pattern (hypothetical workload) — collaborative doc editor on DynamoDB with LWW-Register CRDTs, 800 concurrent editors, 2
  • •1M ops/day, merge conflicts drop from 14% (last-write-wins) to 0
  • •3% (CRDT) at cost of 38% larger item payloads
  • •Anti-patterns 1

Entity Definitions

Aurora
Aurora is an AWS service discussed in this article.
DynamoDB
DynamoDB is an AWS service discussed in this article.
SQS
SQS is an AWS service discussed in this article.
ElastiCache
ElastiCache is an AWS service discussed in this article.

CRDTs and Eventual Consistency Anti-Patterns on AWS

Cloud ArchitecturePalaniappan P2 min read

Quick summary: Last-write-wins is not a CRDT—it is how Global Tables lose cart merges. When to use counters, OR-Sets, and conflict-free merges vs when to keep a single Aurora writer.

Key Takeaways

  • June 2026: Multi-Region active-active without a merge strategy is how eventual consistency anti-patterns ship—users see flickering state, not “high availability
  • Benchmark pattern (hypothetical workload) — collaborative doc editor on DynamoDB with LWW-Register CRDTs, 800 concurrent editors, 2
  • 1M ops/day, merge conflicts drop from 14% (last-write-wins) to 0
  • 3% (CRDT) at cost of 38% larger item payloads
  • Anti-patterns 1
Two cart records diverging across Regions, with a gold merge rule card instead of last-write-wins
Table of Contents

June 2026: Multi-Region active-active without a merge strategy is how eventual consistency anti-patterns ship—users see flickering state, not “high availability.”

Symptom → mechanism → AWS control

Production symptomMechanismAWS control
Lost edits under concurrent writesLast-write-wins silently drops updatesDynamoDB conditional writes, CRDT merge in application layer
Unbounded item growthCRDT tombstones accumulateDynamoDB TTL on compaction checkpoints, periodic snapshot
Divergent replicas after replayEventual consistency without merge semanticsKinesis event sourcing with deterministic merge function

Opinionated take: CRDTs solve collaborative state—not money—and pair best with DynamoDB or ElastiCache when you can tolerate seconds of convergence, not milliseconds of serializability.

Benchmark pattern (hypothetical workload) — collaborative doc editor on DynamoDB with LWW-Register CRDTs, 800 concurrent editors, 2.1M ops/day, merge conflicts drop from 14% (last-write-wins) to 0.3% (CRDT) at cost of 38% larger item payloads.

Anti-patterns

  1. RWM on same record across Regions without merge → lost updates
  2. Cache-aside as source of truth across Regions
  3. SQS at-least-once without idempotent handlers (looks like consistency bug)

CRDTs (when they help)

Conflict-free replicated data types (counters, OR-Sets, LWW-Element-Set with care) suit collaboration and device sync. On AWS, implement in app layer or use services with documented merge (DynamoDB counters are not full CRDTs).

Opinionated take: Prefer single-writer Aurora Global for financial aggregates; use CRDT-style merges only when product accepts semantic merge rules in writing.

AWS services map

PatternService
Active-active itemsDynamoDB Global Tables + version attribute
Session syncElastiCache + sticky + short TTL
Ordered workflowSQS FIFO + dedup

What to do this week

  1. Document merge function for each Global Table entity.
  2. Add integration test simulating concurrent cross-Region writes.
  3. Metric: conflict resolution count per hour.

More in This Track

Part of the Engineering Guides library (June 2026).

What this guide doesn’t cover

Distributed locks—next guide in track.

Frequently asked questions

When should I not use a CRDT on DynamoDB Global Tables?
Do not CRDT money. Prefer a single-writer Aurora Global Database for financial aggregates. CRDTs fit collaboration and device sync when the product can write down merge rules and tolerate seconds of convergence, not serializable milliseconds.
Is last-write-wins a CRDT?
No. LWW silently drops concurrent edits — the cart-merge failure this guide starts with. Use conditional writes plus an application merge (counters, OR-Sets, documented LWW-Register) or keep one writer.
What could go wrong if cache-aside is the source of truth across Regions?
Replicas diverge and look like “eventual consistency bugs.” Cache-aside is not a merge strategy. Document a merge function per Global Table entity and test concurrent cross-Region writes in integration tests.
Do DynamoDB counters count as a full CRDT?
No. Atomic counters are not OR-Sets or LWW-Element-Sets. Tombstones can unbounded-grow items; use TTL on compaction checkpoints and periodic snapshots if you implement CRDT-style merges in the app layer.
Palaniappan P
Palaniappan P

AWS Cloud Architect & AI Expert

AWS-certified cloud architect and AI expert with deep expertise in cloud migrations, cost optimization, and generative AI on AWS.

AWS ArchitectureCloud MigrationGenAI on AWSCost OptimizationDevOps

Recommended Reading

Explore All Articles »