Dead-Letter Queues

Version 4.6.0 of Axon Framework introduced the Dead-Letter Queue (DLQ) mechanism. This mechanism allows you to store messages that could not be processed by an Event Processor, for example due to an exception being thrown. The messages can then be inspected and possibly retried.

Axon Framework only provides a programmatic interface to see and manage the DLQ, and any mechanism for retries needs to be implemented by the user. AxonIQ Console provides a graphical interface to inspect and manage the DLQ, and also provides a mechanism to delete and retry messages.

You can only see the amount of messages in the DLQ by default, not its contents. This is to prevent unwanted access to the contents of the DLQ. If you want to see the contents of the DLQ, you can enable this in the properties of the Framework client. See Axon Framework Connector for more information.

When a processor has one or more DLQs, you can see this in the Processor overview under the "Dead Letters" column, as shown below.

Screenshot of the Processor overview with a DLQ shown

Clicking on the queue will take you to the DLQ overview page, where you can see all sequences in the Dead-Letter Queue, along with the number of messages in the sequence, the cause of the failure, and the time the message was added to the DLQ.

Screenshot of the DLQ overview with a collapsed queue

To retry processing of the sequence you can click "Retry" on the row of that sequence. You can also click the "Delete" button to delete the entire sequence from the DLQ. This will remove all messages in the sequence from the DLQ.