Message Queues
Count the deliveries, then stop counting
A queue redelivers on its own initiative — not because you retried, but because a broker cannot tell a dead consumer from a slow one. This is the volume on what follows: how many times your handler really runs, what a partition key costs, what a dead-letter threshold buys, and how to make the count stop mattering.
- Modules
- 5
- Drills
- 11
- Build steps
- 3
- Time
- ~3h
Walk out able to
Say how many times a handler runs under a stated acknowledgement mode and failure — then write the consumer that makes the answer irrelevant.
What you work on
One message, end to end
Producer, queue, consumer, and what an acknowledgement does.
The count that matters
How many times a handler runs, and why it is never once.
Ordering and its price
What a partition key buys, and the consumers it idles.
Dead letters, then done
Bounded retries, then an inbox that makes duplicates safe.
What you get
Skills that stick
Every project mixes short lessons, focused drills and real build steps, so you finish with working code and the judgement behind it.
You will practise
- Acknowledgement modes and what they redeliver
- Counting handler runs under any failure
- Ordering, partition keys and consumer groups
- Dead letters, and inboxes that hold
Afterwards you can
- Turn any described failure into an integer
- Name the semantics you have, not the one you meant
- Price a retry threshold before it ships
- Build a consumer whose effects land once
Modules
Step by step
Each module builds on the last. Read a short lesson, drill it until it's second nature, then put it to work.
- 1
See the moving parts
~35 minFollow one message from send to acknowledgement and say what happens at every branch.
- LessonWhy put a queue between them5 min
- LessonFollow one message to its ack11 min
- DrillSay what the broker does next9 min
- DrillPick the shape the work needs10 min
- 2
Count the handler runs
~33 minTurn any described failure into an integer, and hold a guarantee to its stated scope.
- DrillCount the handler runs12 min
- DrillName the semantics you have10 min
- DrillHold the guarantee to its scope11 min
- 3
Order costs parallelism
~20 minSay whether two messages are ordered at the handler, and what that guarantee cost.
- DrillSay whether the order holds10 min
- DrillCount the consumers that get work10 min
- 4
Bound the retries
~21 minRun a stated dead-letter policy, and sort a failure before deciding to retry it.
- DrillRun the dead-letter policy12 min
- DrillSort the failure first9 min
- 5
Make the count stop mattering
~1hBuild a broker that redelivers, watch the duplicates land, and then make them harmless.
- DrillDecide if the handler can repeat10 min
- DrillPlace the dedup record11 min
- Build stepBuild a broker that redelivers14 min
- Build stepLet the failures in12 min
- Build stepMake the duplicates harmless20 min
- LessonRead five incidents cold20 min
More in APIs & services
Keep going
HTTP & APIs
Every answer is already in the headers.
Intermediate~4h6 modules
Auth
Everything works until somebody holds one piece of it.
Intermediate~3h5 modules
REST API Design
Every good decision has a constraint behind it.
Intermediate~3h7 modules
GraphQL
One request, and a bill nobody counted.
Advanced~4h6 modules
Ready when you are.
Work through it at your own pace and pick up right where you left off.