Overview
Sink commands provide functionality for:- Publishing messages to message queues (RabbitMQ)
- Sending data to databases
- Outputting data to APIs and webhooks
- Configuring exchange and routing keys
- Managing data output formats
Available Commands
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
Key Features
Direct Publishing
Sink commands enable 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:| Parameter | Type | Description | Required |
|---|---|---|---|
| exchange | string | RabbitMQ exchange name | Yes |
| routingKey | string | Routing key for message routing | Yes |
| data | object | Data payload to send | Yes |
Command Parameters
Sink commands typically support the following parameters:| Parameter | Type | Description | Required |
|---|---|---|---|
| exchange | string | Exchange name for message routing | Yes |
| routingKey | string | Routing key for message routing | Yes |
| data | object | Data payload to publish | Yes |
Variable Support
Sink commands support variable interpolation in exchange names, routing keys, and data payloads: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
Configuration Example
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
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
Related Commands
- HTTP Commands - Fetch data before sending to sink
- Parse Commands - Parse data before sending to sink
- Validation Commands - Validate data before sending to sink