Skip to main content

Conduit RabbitMQ Connector v0.3.0

· 2 min read

Conduit RabbitMQ Connector v0.3.0 was released today, propagating AMQP 0.9 headers via OpenCDC headers, and with a breaking change on the routingKey, but this will make it more flexible to use with other connectors by utilizing Go templates.

Changes

Docker Image Update

The RabbitMQ Docker image has been updated to version ⁠4.1, ensuring compatibility with the latest RabbitMQ features and improvements.

Metadata Propagation to RabbitMQ Headers

Record metadata keys prefixed with rabbitmq.header. are now propagated to AMQP 0.9 headers (and vice versa).

This feature allows users to pass custom headers when publishing messages to RabbitMQ.

Example:

version: 2.2
pipelines:
- id: rabbitmq-headers-example
connectors:
- id: source
# other connector configuration
processors:
- id: add-headers
plugin: builtin:field.set
settings:
field: metadata.rabbitmq.header.app_id
value: "inventory-service"
destination:
plugin: rabbitmq
config:
...

In this example, the messages sent to RabbitMQ will include app_id in the headers:

{
"app_id": "inventory-service",
}

RoutingKey as a Go Template

The routingKey configuration now supports Go templates, enabling dynamic routing key generation based on metadata.

  • Breaking Change: This replaces the previous static routingKey implementation.
  • Improvement: Users can now use a single pipeline with a processor to set rabbitmq.routingKey dynamically, reducing the need for multiple pipelines.

Example: A processor can set rabbitmq.routingKey to a desired value, which will then be used as the topic exchange routing key.

Thanks @rauanmayemir for these contributions!

If you have any questions, or more feedback feel free to join our Discord Community

tip

For more information, check out the RabbitMQ Connector documentation.

scarf pixel conduit-site-changelog