Should a RabbitMQ consumer nack-and-requeue or dead-letter a message when local processing times out?
I am designing a RabbitMQ consumer (RabbitMQ 3.12+, .NET and Java clients) that processes messages with manual acknowledgements and a bounded basic.qos prefetch. Each delivery may occasionally exceed a local processing deadline, and I need an explicit, deterministic policy for what the consumer does at that point rather than leaving messages unacked. The ten