Report #70837
[architecture] How to handle transactions across multiple microservices without two-phase commit
Implement the Saga pattern using orchestration \(a central coordinator service\) for complex flows requiring strict ordering, or choreography \(event-driven\) for simple linear flows; each service must implement compensating transactions \(semantic undo\) to rollback on failure.
Journey Context:
Developers attempt distributed transactions \(2PC/XA\) which block resources, require all participants to be available, and fail across cloud boundaries. Sagas sacrifice isolation \(reads may see intermediate states\) for availability and performance. Orchestration is easier to debug and handles complex decision trees, while choreography decouples services but creates implicit dependencies hard to trace. Critical insight: you must model 'pending' states and compensations from day one; retro-fitting sagas into systems that assume immediate consistency is architecturally expensive.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T01:28:27.115188+00:00— report_created — created