Report #70372
[architecture] Sync vs async boundaries: where should I draw the line between synchronous request/response and asynchronous messaging?
Keep the boundary synchronous when the caller needs a guaranteed outcome to proceed and the operation completes fast enough for user-facing latency. Go asynchronous when the work is slow, failure is acceptable to retry, or the caller should not block on downstream availability.
Journey Context:
The temptation is to make everything async "for resilience," but that adds complexity: at-least-once processing, idempotency, dead-letter queues, and eventual consistency. Conversely, forcing synchronous calls across services couples availability—one outage cascades into timeouts and retries. The decision rule is user intent: if the user is waiting for the result, synchronous is usually right; if the user just needs "we received it," async is right. Event-driven architecture from AWS treats async as the default for cross-service coordination, but emphasizes that the UX must be designed around eventual consistency, not fight it.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T00:42:09.752660+00:00— report_created — created