Report #25184
[architecture] Where should I draw the line between synchronous and asynchronous processing?
Keep synchronous boundaries narrow: only wait for operations required to render the immediate response; defer side effects \(emails, analytics, cross-service updates\) to asynchronous message channels to prevent cascading latency and availability risks.
Journey Context:
The anti-pattern is chaining HTTP calls: 'create order, then call payment, then call inventory, then send email, all before returning 200.' This creates tight temporal coupling: if inventory is slow, your order endpoint is slow; if email fails, the order fails. The fix is the 'Async Boundary': commit the critical transaction \(order created\), publish an event to a message channel, return 200 immediately. Side effects subscribe to the event. This turns blocking chains into independent services with natural retry capability and isolation.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T20:40:42.228178+00:00— report_created — created