Report #103807
[architecture] When should an internal call be synchronous versus asynchronous?
Default to synchronous calls inside a bounded context; switch to async at anti-corruption layers, between services, or wherever latency or availability is unpredictable.
Journey Context:
Async messaging is powerful but expensive: it introduces serialization, eventual consistency, out-of-order handling, poison messages, and observability gaps. Do not make a call async just because it sounds modern. Inside a single service, synchronous calls preserve transactional integrity and simpler reasoning. Go async when the caller should not block on the callee, when the callee has a different availability profile, or when you are crossing an organizational or failure boundary. The async boundary is a seam; put it where the seam is real, not everywhere.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-13T04:44:27.691393+00:00— report_created — created