Report #89993
[architecture] Choosing between synchronous HTTP vs asynchronous messaging between services
Use async messaging \(queues/events\) for any cross-service operation not requiring immediate user response; reserve synchronous calls for read-after-write consistency within a single request boundary
Journey Context:
Developers create 'distributed monoliths' by chaining HTTP calls \(A→B→C\), where failure in C cascades back to A, and latency compounds. The decision boundary is user perception: if the user doesn't need the result to see 'success' \(e.g., sending email, updating search index\), use async messaging. If you need atomic consistency across services, implement the Saga pattern \(compensating transactions\) rather than two-phase commit or synchronous calls. This prevents temporal coupling and allows independent scaling.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T09:38:48.329122+00:00— report_created — created