conductor-oss / conductor-oss/conductor
Add dead letter exchange and queue arguments support for AMQP
- Dominant language
- Java
- Stars
- 32.2k
- Forks
- 1k
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 37
Description
## Summary
The AMQP event queue integration lacks support for Dead Letter Exchange (DLX) configuration. When workflows are triggered via Event Handlers sourced from RabbitMQ and workflow initiation fails (e.g., backend database issues), messages are nacked with `requeue=false` and discarded because no DLX is configured.
## Desired Behavior
Support the following optional URI parameters in AMQP queue configuration:
- `deadLetterExchange` — configure `x-dead-letter-exchange`
- `deadLetterRoutingKey` — configure `x-dead-letter-routing-key`
- `messageTtl` — configure `x-message-ttl` (milliseconds)
- `maxLength` — configure `x-max-length`
Example: `amqp_queue:myQueue?deadLetterExchange=myDLX&deadLetterRoutingKey=failed&messageTtl=60000`
## Affected Files
- `amqp/src/main/java/com/netflix/conductor/contribs/queue/amqp/util/AMQPConfigurations.java`
- `amqp/src/main/java/com/netflix/conductor/contribs/queue/amqp/util/AMQPSettings.java`
## Prior Art
Community PR #691 by @dewidyabagus addressed this with a clean implementation including tests.
Contributor guide
Assessment
This issue has not been assessed yet.