← Back to microservices patterns mapconsistency
Microservices Pattern
Two-Phase Commit (2PC)
A coordinator asks participants to prepare, then commits or rolls back all participants.
Detailed Description
2PC provides atomicity but fights the autonomy and availability goals of microservices.
Most microservice systems prefer sagas, outbox, idempotency, and compensation instead.
Visual Diagram
2PC Protocol
Phase 1 — PREPARE:
Coordinator → "prepare?" → DB-1, DB-2, DB-3
DB-1 → "ready ✓"
DB-2 → "ready ✓"
DB-3 → "ready ✓"
Phase 2 — COMMIT:
Coordinator → "commit!" → all DBs
all commit atomically ✓
If DB-2 says "not ready":
Coordinator → "rollback!" → all DBsTradeoffs
Pros
True atomicity across resources
Cons
Blocking, coordinator SPOF, poor scalability
Examples: XA transactions; rarely preferred in microservices
Comments
Sign in to leave a comment. Your name and photo come from Google; nothing else is shared.
Loading comments...
All courses
24 courses in 5 subjects
AI
System Design
Backend
- GraphQL8 modules · 69 lessons planned
- Core Python13 modules · 75 lessons planned
- FastAPI5 sections · 20 lessons
- Node.js14 modules · 206 lessons planned
- Node.js Performance7 chapters · 36 topics
- Event Loop Lifecycle6 phases · 3 scenarios
- Docker & Containerization11 modules · 144 lessons planned
- AWS for Developers14 modules · 219 lessons planned
- CI/CD & DevOps Automation10 modules · 134 lessons planned
Frontend
Fundamentals
On this page
0 sections