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