Skip to main content
Version: 2.1

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 ConnectionsNew ConnectionRabbitMQ 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. Set to 0 to disable.
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)
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.
  • Heartbeat interval of 0 disables heartbeats entirely. 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. Go to FunctionsNew Function
  2. Choose Publish or Consume as the function type
  3. Select the RabbitMQ connection profile
  4. 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)
MandatoryBooleanNofalseReturn message if no queue is bound to the exchange with a matching routing key
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.