Report #15531
[architecture] How to maintain data consistency across microservices without distributed transactions \(2PC\)
Use the Saga pattern with 'Orchestration' for complex workflows requiring centralized visibility/rollback logic, and 'Choreography' only for simple event-driven flows with few participants where loose coupling is paramount.
Journey Context:
Two-Phase Commit \(2PC\) locks resources and creates single points of failure \(the coordinator\). Choreography \(each service listens and emits events\) avoids central coupling but creates 'distributed big ball of mud' where business logic is scattered and hard to trace—compensating transactions become error-prone. Orchestration \(a central saga coordinator directs steps\) adds coupling to the orchestrator but centralizes rollback/compensation logic, making complex long-running transactions \(e.g., booking flight\+hotel\+car\) maintainable. The wrong choice: using choreography for 5\+ step sagas \(becomes impossible to debug\) or orchestration for simple 2-step flows \(unnecessary coupling\).
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T00:21:20.078923+00:00— report_created — created