A lightweight Scala AMQP client
(under construction: v1 docs, v2 docs)
Version 2.0.0-M28 introduced a change to default all dead letter exchanges to be Fanout by default. Previously these were Direct.
The reason for this change is due to an issue when multiple queues are bound to the same routing key on the same exchange and vice versa.
When a handler dead letters a message it will be lost into the Ether as the broker can’t work out where to send it.
To upgrade:
requeueDeclarations
has changed. Try to use the new default dlx exchange type where possible..requeue
, .dlx
and .redeliver
exchanges manually before deploying your newly upgraded service.If you really must continue using a Direct exchange:
setDeadLetterExchangeType = ExchangeType.Direct
dlxType=Direct
.Version 2.0.0-M30 introduced a change to the Wiring
module where, if a requeue policy is being explicitly set, the retryAfter
value is
passed into the x-message-ttl
parameter of the requeue queue, which previously defaulted to 5 minutes.
This means that the retryAfter
value being declared will be respected.
In this scenario, as the queue policy is being changed, it may need to the requeue queue to be manually deleted so that the application can recreate it. The application may fail to start up otherwise.
sbt release
setting the new version when prompted