Nack and requeue — the failure verdict

A consumer that fails sends a nack to put the message back at the head (requeue=true) or rejects it without requeue to drop or route it elsewhere — a second consumer-side signal alongside ack.

Previously

Ack handles the happy path: 'I succeeded.' The error path needs its own verdict — and it has two flavors, depending on whether we still believe the message can succeed if we try again.

Scene 06

Nack and requeue — the failure verdict

  1. Watch
  2. Try it
  3. Predict
  4. Capture
producerenqueueheadtail01234WORKERS · 3Worker 1ACKNACKREJECTWorker 2ACKNACKREJECTWorker 3ACKNACKREJECTDISCARDED (rejected)
What to watch for

Watch a worker take a cell from the head. Instead of acking, it nacks with requeue=true — the cell goes bright again at the head, and another worker picks it up. Then a worker rejects a cell with requeue=false — that cell vanishes into the discarded lane and never comes back.

Continue unlocks when the animation finishes.

Where this sits in Build a Message Queue (RabbitMQ / SQS)

Scene 06 of 14. Three consumer verdicts (ack / nack-with-requeue / reject-without-requeue) — and requeue-forever is a footgun.

Up next. Requeue is the obvious default — try again. But what if the message can never succeed? We just watched the strip oscillate forever on one bad cell. That's not a bug we can fix at the consumer; the broker needs a kill-switch.

All 14 scenes in Build a Message Queue (RabbitMQ / SQS) · Every curriculum

Built with Arqly
Every scene in Build a Message Queue (RabbitMQ / SQS) builds on the one before it.All 14 Build a Message Queue (RabbitMQ / SQS) scenes