Comparison
Poison messagevsPoison record
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 →Poison record
one malformed row fails the batch, the batch retries, and the same row fails it again every five minutes for two days.
A single input that cannot be processed and blocks everything behind it because the failure is retried indefinitely. Retry logic that cannot distinguish a transient failure from a permanent one turns a single bad record into a stopped pipeline. The standard treatment is a bounded retry count followed by diverting the record somewhere it can be inspected, so progress resumes and nothing is lost.
Full entry →