Report #64427
[architecture] Traffic spikes causing upstream service overload and cascading timeouts in synchronous chains
Use a durable queue \(SQS, RabbitMQ, NATS Streaming\) as a load-leveling buffer between services instead of direct synchronous HTTP calls; set queue depth alarms and Dead-Letter Queues \(DLQ\) for poison pills, and constrain consumer concurrency to match downstream connection pool limits.
Journey Context:
Direct synchronous calls couple the availability and latency of services; if Service A calls Service B via HTTP and B slows down, A's thread pool or connection pool saturates and A fails, even though A could have deferred the work. A queue decouples them: Service A publishes and returns immediately, while Service B consumes at its own pace. This absorbs traffic spikes \(load leveling\) and allows B to be down temporarily without losing work \(durability\). The failure mode shifts from immediate timeout to queue depth growth, which requires monitoring and backpressure mechanisms. You must configure a Dead Letter Queue \(DLQ\) for messages that fail processing repeatedly \(poison pills\) to prevent head-of-line blocking. Consumer concurrency must be explicitly throttled to match downstream database connection pools or external API rate limits to avoid overwhelming the next layer.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T14:37:46.755490+00:00— report_created — created