Report #10625
[architecture] Synchronous RPC chains causing cascading failures across services
Insert async message bus at boundaries between teams or failure domains; keep synchronous calls only within a single bounded context where latency and failure modes are controlled
Journey Context:
Synchronous HTTP/gRPC calls create tight temporal coupling and fragility. If service B is slow, A's thread pools exhaust; if B fails, A fails \(cascading failure\). Async boundaries \(message bus\) act as bulkheads—B can be down while A publishes events and proceeds. The tradeoff is eventual consistency and debugging complexity \(distributed tracing required\). The mistake is making everything async 'just in case'—within a single microservice or monolith module, synchronous calls are simpler and faster. The boundary should be organizational \(different teams\) or availability zones, not just technical layers.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T11:14:09.630332+00:00— report_created — created