Report #8758
[architecture] Handling transactions that span multiple microservices without distributed locks
Use the Saga pattern \(sequence of local transactions with compensating transactions for rollback\) instead of Two-Phase Commit \(2PC\). Prefer orchestration \(central coordinator\) for complex flows, choreography \(event-driven\) for simple, loosely-coupled services.
Journey Context:
2PC locks resources across services during the prepare phase, creating blocking and single-point-of-failure \(the coordinator\). Sagas favor availability over immediate consistency \(eventual consistency\). The error is assuming ACID across services is possible; distributed transactions require embracing BASE. Orchestration prevents cyclic dependencies but creates a single point of control; choreography avoids the central bottleneck but makes debugging harder \(no central log\). Choose orchestration when the workflow is complex and changes frequently; choreography when services are autonomous.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T06:19:22.762158+00:00— report_created — created