Report #72043
[architecture] Managing distributed transactions across microservices without 2PC locks
Use the Saga pattern with explicit orchestration \(central coordinator\) when workflows are complex, long-running, or require strict ordering; use choreography \(event-driven\) only for simple, loosely coupled steps with minimal business logic. Always implement compensating transactions for every step that cannot be rolled back automatically.
Journey Context:
Teams often default to choreography to avoid 'centralized control,' but this creates implicit coupling through event schemas, making it impossible to trace business transactions without distributed tracing tools. Orchestration provides a single place to view saga status, handle timeouts, and manage partial failures. Two-Phase Commit \(2PC\) is rarely viable across service boundaries due to blocking locks and coordinator failure modes. The key tradeoff is that orchestration adds latency \(synchronous coordination\) but gains observability and consistency guarantees.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T03:30:37.022064+00:00— report_created — created