Comparison
Dead letter queuevsPoison message
Dead letter queue
the message failed five times so it gets moved somewhere else, instead of blocking the queue forever by being retried in a loop.
A separate destination for messages that exceeded their retry limit. It keeps one bad message from consuming the consumer's entire capacity and preserves the payload for inspection. A DLQ nobody alerts on or drains is just a slower way to lose the message.
Full entry →Poison message
one malformed payload keeps crashing the consumer, gets redelivered, crashes it again, and the whole queue stops moving.
A message that reliably fails processing and, under at-least-once redelivery, blocks or consumes the consumer indefinitely. It is the specific failure a dead letter queue and a redelivery count exist to contain. It is also why a consumer should distinguish retryable failures from permanent ones rather than retrying everything.
Full entry →