Report #104249
[architecture] Should this API call be synchronous or asynchronous \(event-driven\)?
Use synchronous \(request/response\) APIs for commands that require immediate confirmation and are part of the user's critical path \(e.g., 'log in', 'get user profile'\). Use asynchronous \(event/message\) boundaries for commands that can be deferred, are not on the critical path, or require orchestration across multiple services \(e.g., 'send welcome email', 'process video upload'\). A good heuristic: if the user doesn't need to wait for the result, make it async.
Journey Context:
Common mistake: making everything sync for simplicity, creating cascading latency and tight coupling. Or making everything async, creating massive complexity \(eventual consistency, debugging\). The right approach is to carefully define the 'consistency boundary'. Within a service, sync calls are fine. Between services, prefer async events for non-critical paths. The tradeoff is sync is simple and consistent, async is resilient and decoupled but complex. A good heuristic: if the user doesn't need to wait for the result, make it async. The Amazon 'two-pizza team' rule of thumb: if your service needs to call 3\+ other services synchronously to fulfill a request, you likely have a coupling problem.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-19T20:06:59.029490+00:00— report_created — created