Dead Letter Queues
By default, Wolverine will try to move dead letter messages in SQS to a single, global queue named "wolverine-dead-letter-queue."
That can be overridden on a single queue at a time (or by conventions too of course) like:
cs
var host = await Host.CreateDefaultBuilder()
.UseWolverine(opts =>
{
opts.UseAmazonSqsTransport();
// No dead letter queueing
opts.ListenToSqsQueue("incoming")
.DisableDeadLetterQueueing();
// Use a different dead letter queue
opts.ListenToSqsQueue("important")
.ConfigureDeadLetterQueue("important_errors", q =>
{
// optionally configure how the dead letter queue itself
// is built by Wolverine
q.MaxNumberOfMessages = 1000;
});
}).StartAsync();
Disabling All Native Dead Letter Queueing
In one stroke, you can disable all usage of native SQS queues for dead letter queueing with this syntax:
cs
using var host = await Host.CreateDefaultBuilder()
.UseWolverine(opts =>
{
opts.UseAmazonSqsTransportLocally()
// Disable all native SQS dead letter queueing
.DisableAllNativeDeadLetterQueues()
.AutoProvision();
opts.ListenToSqsQueue("incoming");
}).StartAsync();
This would force Wolverine to use any persistent envelope storage for dead letter queueing.