Report #74018
[architecture] How to handle transactions across bounded contexts
Use async messaging \(events\) between aggregates; never use 2PC/XA transactions; accept eventual consistency and compensate for failures
Journey Context:
Synchronous HTTP calls between services create cascading failures \(if A calls B calls C, C down = A down\). 2PC is blocking and not available in most cloud-native dbs. Solution: publish events \(outbox pattern\), consume async. If consumer fails, retry or dead-letter; compensate if needed \(saga pattern\). Common mistake: trying to keep 'strong consistency' across services.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T06:50:09.576931+00:00— report_created — created