Report #53432
[architecture] Making synchronous HTTP calls across microservice boundaries causing cascading failures
Use asynchronous messaging \(event bus, message queue\) for communication across bounded contexts; reserve synchronous calls for intra-context queries and implement sagas for cross-context transactions.
Journey Context:
In a microservices migration, teams often keep the old RPC habits, turning a local method call into an HTTP POST to another service. This creates a distributed monolith: if Service B is slow, Service A's thread pool exhausts \(cascading failure\). The latency is the sum of all hops. The fix is embracing the message bus: Service A publishes an 'OrderCreated' event and returns immediately. Service B consumes it asynchronously. If B is down, the message buffers in the queue. For transactions spanning contexts, use the Saga pattern \(orchestrated or choreographed\) rather than 2PC. The boundary between sync and async should align with bounded contexts in DDD terms.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T20:10:48.083158+00:00— report_created — created