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

Serializable sounds safest until your checkout times out under row locks. This guide maps READ COMMITTED, REPEATABLE READ, and SERIALIZABLE to RDS/Aurora defaults—and when DynamoDB conditional writes are the BASE alternative.

Key Facts

  • This guide maps READ COMMITTED, REPEATABLE READ, and SERIALIZABLE to RDS/Aurora defaults—and when DynamoDB conditional writes are the BASE alternative
  • Aurora PostgreSQL-compatible (June 2026) defaults to READ COMMITTED—the same as community PostgreSQL
  • Architects reach for SERIALIZABLE after a double-spend bug, then discover serialization failures spiking 12% under concurrent seat holds
  • BASE on DynamoDB: partition tolerance + availability with eventual Global Tables merge
  • DocumentDB — Mongo API, not PostgreSQL isolation semantics

Entity Definitions

RDS
RDS is an AWS service discussed in this article.
Aurora
Aurora is an AWS service discussed in this article.
DynamoDB
DynamoDB is an AWS service discussed in this article.

PostgreSQL Transaction Isolation and ACID vs BASE on AWS RDS and Aurora

Quick summary: Serializable sounds safest until your checkout times out under row locks. This guide maps READ COMMITTED, REPEATABLE READ, and SERIALIZABLE to RDS/Aurora defaults—and when DynamoDB conditional writes are the BASE alternative.

Key Takeaways

  • This guide maps READ COMMITTED, REPEATABLE READ, and SERIALIZABLE to RDS/Aurora defaults—and when DynamoDB conditional writes are the BASE alternative
  • Aurora PostgreSQL-compatible (June 2026) defaults to READ COMMITTED—the same as community PostgreSQL
  • Architects reach for SERIALIZABLE after a double-spend bug, then discover serialization failures spiking 12% under concurrent seat holds
  • BASE on DynamoDB: partition tolerance + availability with eventual Global Tables merge
  • DocumentDB — Mongo API, not PostgreSQL isolation semantics
PostgreSQL Transaction Isolation and ACID vs BASE on AWS RDS and Aurora
Table of Contents

Aurora PostgreSQL-compatible (June 2026) defaults to READ COMMITTED—the same as community PostgreSQL. Architects reach for SERIALIZABLE after a double-spend bug, then discover serialization failures spiking 12% under concurrent seat holds.

Benchmark pattern — 200 concurrent UPDATE inventory SET qty = qty - 1 WHERE sku = $1 on db.r6g.large: READ COMMITTED lost 0 races but allowed phantom reads in a two-step checkout; SERIALIZABLE aborted 11% of transactions; app-level SELECT FOR UPDATE in READ COMMITTED added 34 ms p95 lock wait. Worksheet: examples/engineering-guides/postgresql-transaction-isolation-acid-vs-base-aws/.

Isolation levels (what breaks in production)

LevelPhantom readsWrite skewAWS fit
READ COMMITTEDPossiblePossibleDefault RDS/Aurora OLTP
REPEATABLE READNoPossible (PG)Reporting snapshots
SERIALIZABLE (SSI)NoPreventedShort transactions only

ACID on Aurora: one primary writer, Multi-AZ sync replica for failover. BASE on DynamoDB: partition tolerance + availability with eventual Global Tables merge.

AWS services map

PatternServiceSkip when
Row-locked inventoryAurora + FOR UPDATEGlobal active-active writes
Optimistic concurrencyDynamoDB version attributeComplex multi-row invariants
Read scale-outAurora replicas (lag!)Need linearizable reads
Analytics snapshotAurora clone / DMS to RedshiftNeed real-time ledger

When this advice breaks

  • Aurora DSQL / distributed SQL — isolation story differs; verify current docs before porting SERIALIZABLE assumptions.
  • DocumentDB — Mongo API, not PostgreSQL isolation semantics.
  • Read replica reporting — REPEATABLE READ on replica still lags primary.

What to do this week

  1. SHOW transaction_isolation; on production writer—confirm default.
  2. Enable log_lock_waits and deadlock_timeout tuning for lock-heavy paths.
  3. For money paths, add explicit isolation in code + retry on 40001 serialization failure.
  4. Measure replica lag before routing reads to Aurora replicas.

What this guide doesn’t cover

B-tree vs LSM storage—see part 2 of this track. Connection pool exhaustion—see part 3.

PP
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 »