Report #51436
[architecture] Maintaining ACID consistency across microservices leads to distributed locks \(2PC\) that kill performance and availability
Use Saga pattern: sequence of local transactions where each service updates its data and publishes event/triggers next step. For complex flows with decision trees, use Orchestration \(central coordinator service\); for simple linear flows, use Choreography \(event bus\). Always implement compensating transactions for rollback.
Journey Context:
2PC/XA transactions are blocking and brittle \(coordinator failure leaves locks\). Sagas provide eventual consistency. Dev mistake: choosing Choreography for complex flows creates 'event spaghetti' and hidden dependencies; Orchestration adds coupling but visibility. Key insight: design compensating logic upfront \(e.g., refund for charge, inventory release for reservation\).
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T16:49:43.319986+00:00— report_created — created