The RabbitMQ Sink command (Command Type: 1200) enables you to publish messages directly to RabbitMQ exchanges. This command is the primary method for sending processed data to message queues and enabling robot communication.Documentation Index
Fetch the complete documentation index at: https://docs.bringits.com/llms.txt
Use this file to discover all available pages before exploring further.
Overview
The RabbitMQ Sink command provides functionality for:- Publishing messages directly to RabbitMQ exchanges
- Configuring exchange and routing keys
- Sending data as part of the message itself
- Managing message routing and delivery
- Enabling direct communication with robots
Command Type
Command Type ID: 1200Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| exchange | string | RabbitMQ exchange name | Yes |
| routingKey | string | Routing key for message routing | Yes |
| data | object | Data payload to publish | Yes |
| messageProperties | object | Additional message properties | No |
Key Features
Direct Publishing
The RabbitMQ Sink command enables direct publishing without requiring orchestrator flow:- No Orchestrator Flow: Direct publishing bypasses the bringits-stream-orchestrator
- No Redis Storage: All data included in the message itself
- Immediate Publishing: Messages sent as soon as the step completes
Message Configuration
Configure message routing and delivery:Usage Examples
Basic Message Publishing
Publishing with Project Variables
Publishing Extracted Data
Publishing with Message Properties
Variable Support
The RabbitMQ Sink command supports variable interpolation in:- Exchange: Use variables in exchange names
- Routing Key: Use variables in routing keys
- Data Payload: Use variables throughout the data payload
Common Variable Patterns
- Project Variables:
@{PROJECT_ID},@{RUN_ID},@{START_TIMESTAMP} - Previous Output:
@{PREVIOUS_OUTPUT}- Data from previous commands - Extracted Data: Reference data from Json Path or Object Mapper commands
- Secrets:
%{SECRET_NAME}- Encrypted credentials if needed
Message Structure
Messages published to RabbitMQ include:Message Format
Best Practices
- Place at End of Workflow: Typically use sink commands as the final command in your last step
- Test Configuration: Test sink configuration with simple messages before full workflow
- Use Descriptive Routing Keys: Use clear routing keys for message organization
- Include Metadata: Include project and run identifiers in message payloads
- Verify Consumption: Confirm messages are being consumed successfully
- Handle Errors: Implement error handling for publishing failures
- Use Consistent Formats: Maintain consistent message formats across workflows
Common Use Cases
- Message Queue Publishing: Publish messages directly to RabbitMQ exchanges
- Data Pipeline Integration: Send data to downstream processing systems
- Robot Communication: Primary method for robot communication
- Event Streaming: Stream events to message brokers
- Data Archival: Send processed data to storage systems
Related Commands
- HTTP Request - Fetch data before sending to sink
- Json Path - Extract data before sending to sink
- Object Mapper - Transform data before sending to sink
Troubleshooting
Messages Not Being Consumed
If messages aren’t being consumed:- Verify Exchange Exists: Ensure the exchange is configured in RabbitMQ
- Check Routing Key: Verify routing key matches consumer configuration
- Test Connection: Ensure RabbitMQ connection is working
- Review Message Format: Verify message format matches consumer expectations
- Check Exchange Type: Verify exchange type matches routing requirements
Common Issues
- Exchange Not Found: Verify exchange name is correct and exists
- Routing Key Mismatch: Ensure routing key matches consumer bindings
- Connection Issues: Check RabbitMQ connection and credentials
- Message Format Errors: Verify data payload format is correct
- Permission Errors: Ensure proper permissions for exchange and routing
Testing Sink Configuration
Test your sink configuration:- Create a simple test message
- Publish to test exchange
- Verify message appears in RabbitMQ
- Confirm consumer receives message
- Validate message format matches expectations