Dead Letter Exchange
I ended up with a message in my queue that failed to de-serialize, but since a failure in serialization just nack'd and re-queued, my consumer was stuck in an endless loop.
I decided I'd rather have all nack'd messages end up in a dead letter queue, so I've added support for that. Let me know what you think!
My primary concern with this change is that we'll deadletter for any failure. I'd rather only deadletter things that fail repeatedly. Any thoughts on how we could do that?
Agreed, but let's have this discussion in the related private PR.
Pinging @ryanuber
@danbrakeley in general I agree we should solve the redelivery problem if some bad JSON makes it into a relay queue. I think the dead-lettering should be specifically for the serialization failure case though and not applied broadly to Nack(). There are many cases where Nack() is called due to non-error conditions. Let's dead-letter only the messages we know relay can never handle safely.