Day 11 of #DistributedDilemmas: Queue-based architectures hide scaling issues
Queue-based architectures hide scaling issues. Kafka topics with long retention become both a blessing and a curse. Backpressure beats unbounded queues!…
Kafka topics with long retention become both a blessing and a curse. Backpressure beats unbounded queues!
Kafka’s Retention Double-Edged Sword:
While queues create an illusion of infinite scalability by buffering load and smoothen temporary spikes, unbounded queues lead to hidden technical debt:
- Blessing: Long retention enables event replay for recovery/analytics (critical for financial transaction auditing).
- Curse: Segmentation Trap, Kafka only deletes closed log segments where active segments with expired data remain until rotation.
SlackHQ engineering team found 2-week retention caused 45TB storage bloat, slowing consumer bootstrap from 2s to 1m+. https://slack.engineering/scaling-slacks-job-queue/
Backpressure Patterns Beat Unbounded Queues:
- Maintain stable throughput under load (94% fewer OOM crashes at voxer : https://engineering.voxer.com/2013/09/16/backpressure-in-nodejs/)
- Enable native flow control without client-side retry storms (https://www.tedinski.com/2019/03/05/backpressure.html)
- Prevent consumer lag death spiral.

Keep reading
🚀 Launching today: 28 Days of #DistributedDilemmas
Follow me on Twitter/X this February for one battle-tested insight a day on the hidden complexities behind outages, tech debt and architectural nightmares.
#DistributedDilemmas: all 24 days in one place
In February 2025 I posted one distributed systems dilemma a day on X. I made it to day 24. Here they all are, with the diagrams.
Cell-based architecture, explained: the public version of my Innovation Day talk
My Innovation Day deck was internal, so here's the public version: what a cell is, scaling up and across, blast radius, and what cells cost you.
Leave a comment