dapr / components-contrib

Community driven, reusable components for distributed apps
Apache License 2.0
544 stars 473 forks source link

Add built-in dead letter support for rabbitmq binding #2879

Open Taction opened 1 year ago

Taction commented 1 year ago

Describe the feature

Add built-in dead letter support for rabbitmq binding. The dead letter queue name should be able to be defined via metadata, in order to support using an existing rabbitMQ Queue with a predefined dead letter queue.

Original context from discord chat message.

Release Note

RELEASE NOTE: Add built-in dead letter support for rabbitmq binding.

SpikeWong commented 1 year ago

/assign

SpikeWong commented 1 year ago

@Taction I'm sorry I didn't spend time on this issue because I was too busy a while ago. As I understand it, do we allow the user to declare the name of the dead letter exchange/queue in the metadata, and check if it exists before declaring the exchange/queue, and if it exists, do nothing, if not, declare it (this relates to whether we allow the user to customize the dlx/ dlq parameters, perhaps we can just stick with the existing configuration r.ensureExchangeDeclared(channel, dlxName, fanoutExchngeKind, true, r.metadata.DeleteWhenUnused)/channel.QueueDeclare(dlqName, true, r.metadata.DeleteWhenUnused, false, false, dlqArgs)). Is I understand correctly?

akstron commented 1 year ago

/assign