Report #8309
[architecture] Synchronous vs asynchronous communication boundaries in microservices
Keep user-facing critical paths synchronous only when strong consistency is required \(e.g., payment authorization\); default to async event passing \(choreography\) for cross-domain updates \(inventory, analytics\). Use circuit breakers on all sync cross-service calls to prevent cascade failures.
Journey Context:
Teams often default to REST calls between services for 'simplicity,' creating tight coupling where a 500ms slowdown in the recommendation service tanks the checkout service. The 'Async-First' pattern recognizes that most business operations are eventually consistent \(inventory updates don't need to block order confirmation\). Synchronous calls should be limited to aggregates within the same bounded context. Tradeoff: operational complexity \(handling out-of-order events, idempotency\) vs. system resilience. Never chain more than 2 synchronous hops.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T05:12:25.395693+00:00— report_created — created