Skip to main content
Version: 3.0 (next)

RabbitMQRabbitMQ Integration Guide

Use MaestroHub's RabbitMQ connector to exchange messages with enterprise applications, microservices, and IoT backends through AMQP 0-9-1. This guide explains how to configure connections, design publish/consume functions, and orchestrate pipelines.

Overview​

The RabbitMQ connector delivers:

  • AMQP 0-9-1 protocol support with advanced exchange routing (direct, topic, fanout, headers)
  • Publish and consume functions for bidirectional messaging
  • Message persistence and acknowledgments for reliable delivery
  • TLS/SSL encryption (AMQPS) for secure connections
  • Virtual host isolation for multi-tenant environments
  • Competing consumers for automatic load balancing across pipeline instances
  • Payload templating with dynamic ((parameter)) syntax

Connection Configuration​

Creating a RabbitMQ Connection​

Navigate to Connections → New Connection → RabbitMQ and fill in these details:

RabbitMQ Connection Creation

Configure a new RabbitMQ connection with broker details and authentication

RabbitMQ Connection Creation Fields​

1. Profile Information​
FieldDefaultDescription
Profile Name-A descriptive name for this connection profile (required, max 100 characters)
Description-Optional description for this RabbitMQ connection
2. Broker Configuration​
FieldTypeDefaultRequiredValidationDescription
HostStringlocalhostYesNon-emptyRabbitMQ server hostname or IP address
PortNumber5672Yes1–65535AMQP port (5672 for AMQP, 5671 for AMQPS)
Virtual HostString/No-RabbitMQ virtual host for multi-tenant isolation

Port Defaults

  • 5672: Standard AMQP (unencrypted)
  • 5671: AMQPS (TLS-encrypted)
3. Authentication​
FieldTypeDefaultRequiredDescription
UsernameString-NoUsername for RabbitMQ authentication
PasswordPassword-NoPassword for RabbitMQ authentication (stored encrypted)
4. Advanced Settings​
FieldTypeDefaultRequiredValidationDescription
Heartbeat (seconds)Number60No0–3600AMQP heartbeat interval for detecting dead connections. 0 uses the broker's interval; a client cannot disable heartbeats on its own.
Connection Timeout (seconds)Number30No1–300Maximum time to wait for a connection to be established
5. TLS/SSL Settings​
FieldTypeDefaultDescription
Enable TLSBooleanfalseUse TLS/SSL for secure connection (AMQPS)
Skip Certificate VerificationBooleanfalseSkip TLS certificate verification (not recommended for production)
Server Name (SNI)Text-Server name for SNI and certificate verification. Defaults to the host
CA CertificatePEM-CA certificate used to verify the broker's server certificate. Leave empty to verify against the system trust store. Use this for a broker with a private-CA certificate instead of skipping verification
Client CertificatePEM-Client certificate for mutual TLS (stored as a secret)
Private KeyPEM-Client private key for mutual TLS (stored as a secret). Must be provided together with the client certificate

The fields below Enable TLS are only displayed when Enable TLS is on.

6. Connection Labels​
FieldDefaultDescription
Labels-Key-value pairs to categorize and organize this RabbitMQ connection (max 10 labels)

Example Labels

  • environment: production – Deployment environment
  • team: backend – Responsible team
  • region: us-east-1 – Geographical region
Notes
  • The default virtual host / is used by most RabbitMQ installations. Change this only if your broker is configured with custom virtual hosts. A leading / is optional: /staging and staging both open the staging vhost.
  • A heartbeat of 0 uses the broker's interval; the client and broker agree on the lower non-zero value, so a client cannot disable heartbeats on its own. A value of 60 seconds is recommended for most deployments.
  • When TLS is enabled, update the port to 5671 (the standard AMQPS port).
  • The password field is stored encrypted and displayed as masked after saving.

Function Builder​

Creating RabbitMQ Functions​

After the connection is configured:

  1. Open the connection and go to its Functions tab → New Function
  2. Choose Publish or Consume as the function type
  3. Configure exchange, routing key, payload, or queue settings
RabbitMQ Function Creation

Design RabbitMQ publish or consume functions with exchange routing and payload templates

Publish Function​

Purpose: Send messages to RabbitMQ exchanges with configurable routing keys, persistence, and custom headers.

Configuration Fields

FieldTypeRequiredDefaultDescription
ExchangeStringYes-Exchange to publish to. Use an empty string for the default exchange (routes directly to a queue by routing key). Supports ((parameter)) syntax.
Routing KeyStringNo""Routing key for exchange binding. When using the default exchange, this is the queue name. Optional for fanout exchanges. Max 255 characters. Supports ((parameter)) syntax.
PayloadStringYes-Message payload to publish. Supports ((parameter)) syntax for dynamic content.
Content TypeStringNoapplication/jsonMIME type of the message payload (application/json, text/plain, application/xml, application/octet-stream)
PersistentBooleanNotrueWhether the message should survive broker restart (delivery mode 2)
Publisher ConfirmsBooleanNotrueWait for the broker to accept the message before reporting success. Leave this on: with it off, the publish reports success as soon as the message is written to the socket, so a message the broker rejects — publishing to an exchange that does not exist, for example — is discarded without an error.
MandatoryBooleanNofalseFail the publish if no queue is bound to the exchange with a matching routing key, instead of letting the broker discard the message. Requires Publisher Confirms.
PriorityNumberNo0Message priority (0–9) for priority queues
Expiration (ms)StringNo-Per-message TTL in milliseconds
Headers (JSON)ObjectNo-Custom headers as a JSON object for headers exchange routing or message metadata. Supports ((parameter)) syntax.
Correlation IDStringNo-Correlation identifier for request/response patterns
Reply ToStringNo-Reply-to queue name for RPC patterns

Use Cases: Task queue publishing, event broadcasting via fanout exchange, topic-based routing, direct message delivery

Consume Function​

Purpose: Receive messages from RabbitMQ queues. Messages are delivered as they arrive and acknowledged after processing. Supports competing consumers for load balancing.

Configuration Fields

FieldTypeRequiredDefaultValidationDescription
QueueStringYes-1–255 charactersQueue name to consume messages from
Auto AcknowledgeBooleanNofalse-Automatically acknowledge messages upon delivery. Disable for manual ack (safer for reliability).
ExclusiveBooleanNofalse-Only this consumer can access the queue
Prefetch CountNumberNo10–65535Number of unacknowledged messages to prefetch (controls throughput vs. memory trade-off)
Consumer TagStringNo--Unique consumer identifier (auto-generated if empty)

Use Cases: Task queue consumption, event processing, message routing, work distribution

Using Parameters​

RabbitMQ publish functions support parameterized values via the ((parameterName)) syntax. Use parameters in the exchange, routing key, payload, headers, correlation ID, and reply-to fields.

ConfigurationDescriptionExample
TypeValidate incoming pipeline datastring, number, boolean, datetime, json, buffer
RequiredForce parameter presenceRequired / Optional
Default ValueProvide fallback values'line-01', 0, '{}'
DescriptionDocument intent for other authors"Routing key suffix for topic exchange"

Pipeline Integration​

Use the RabbitMQ connection functions you create here as nodes inside the Pipeline Designer to synchronize production data with the rest of your stack. Drag in the publish node, bind its parameters to upstream node outputs or constants, and shape event-driven flows without leaving the designer.

If you are planning more complex orchestration, review the Connector Nodes page for patterns on where RabbitMQ nodes fit best within broader orchestration strategies.

RabbitMQ node in pipeline designer

RabbitMQ publish node with connection, function, and parameter mappings

Common Use Cases​

Task Queue Distribution​

Publish work items to RabbitMQ queues consumed by worker processes. Competing consumers automatically distribute work across multiple pipeline instances.

Event Broadcasting​

Use fanout exchanges to broadcast events (e.g., order placed, sensor alert) to all bound queues without specifying routing keys.

Topic-Based Routing​

Route messages to specific queues using topic exchanges and routing key patterns (e.g., sensor.temperature.high, order.*.completed).

Enterprise Application Integration​

Bridge data between legacy systems and modern services by publishing structured messages to RabbitMQ exchanges and consuming from dedicated queues.

RPC Request/Response​

Implement request/response patterns using the Correlation ID and Reply To fields. Publish a request with a unique correlation ID and listen on the reply-to queue for the response.