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.
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
- Watch
- Try it
- Predict
- Capture
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.
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