conductor-oss / conductor-oss/conductor

Add dead letter exchange and queue arguments support for AMQP

Open
#787 1 comment 1 reaction 1 assignee Claimed by @nthmost-orkes View on GitHub
enhancement
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.