Queues, backpressure, and what you are willing to drop
A queue does not make a slow system fast; it changes what happens when the system is too slow. This derives the arithmetic of a growing queue, the difference between a buffer and a backlog, exactly-once as a fiction you replace with idempotency, and why every queue design is really a policy about dropping work.
What you'll be able to do
- Prove from arrival and service rates whether a queue is a buffer or an unbounded backlog
- Choose a bounded-queue overflow policy and defend it in terms of which request the user loses
- Replace an "exactly-once" claim with at-least-once delivery plus an idempotency key
- Design a dead-letter path and a retry policy that cannot amplify an outage
Before this: back-of-the-envelope
The rest of this lesson is in the app
A queue does not make a slow system fast; it changes what happens when the system is too slow. This derives the arithmetic of a growing queue, the difference between a buffer and a backlog, exactly-once as a fiction you replace with idempotency, and why every queue design is really a policy about dropping work. This walkthrough runs about 25 minutes, with runnable code you can edit and re-run as you read.
Continue in ChannelPulseThe first module of every track is free to read on the web — see what's open in System design.