Report #40290
[architecture] Cascading failures and temporal coupling from synchronous HTTP calls between microservices
Use asynchronous messaging \(event bus, message queue, or change data capture\) for inter-service communication; reserve synchronous calls for API gateways or within a single bounded context only
Journey Context:
Synchronous chains \(A calls B calls C\) create tight temporal coupling: if B slows down, A exhausts connection pools and fails, even if C is healthy. Circuit breakers only mitigate, they don't solve the architectural flaw. Asynchronous messaging \(queues or pub/sub\) decouples availability: if the consumer is down, messages accumulate \(or use dead-letter queues\) without blocking the producer. This requires accepting eventual consistency and designing for idempotency, but prevents cascading outages. This is the core of the 'Microservices - Loose Coupling' principle.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T22:05:53.510912+00:00— report_created — created