Report #13605
[architecture] Distributed transactions without two-phase commit
Use the Saga pattern: split long transactions into a sequence of local transactions, each with a compensating transaction to undo changes if subsequent steps fail. Prefer orchestration \(central coordinator with state machine\) over choreography \(event-driven\) for complex flows with >3 services. Ensure all operations are idempotent and implement monitoring for saga completion/timeout.
Journey Context:
Two-phase commit \(2PC\) blocks resources during the prepare phase, creating bottlenecks and single points of failure. Sagas sacrifice immediate consistency \(ACID\) for availability and partition tolerance \(BASE\). The critical insight is that compensating transactions are business logic \(e.g., 'refund payment' not 'delete row'\) and must handle partial failures themselves. Without idempotency, retries during saga execution create inconsistent state.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T19:13:41.098547+00:00— report_created — created