Supported brokers
Broccoli supports multiple message brokers through feature flags:| Broker | Feature | URL Scheme | Status |
|---|---|---|---|
| Redis | redis | redis:// | ✅ Stable |
| RabbitMQ | rabbitmq | amqp:// | ✅ Stable |
| SurrealDB | surrealdb | ws://, mem:// | ✅ Stable |
| Kafka | - | - | 🚧 Planned |
How broker selection works
Broccoli automatically selects the broker based on your connection URL:Choosing a broker
Redis
Best for: General purpose, high throughput, simple setup
- Fast in-memory storage
- Simple operational model
- Good for most use cases
- Supports fairness queues
RabbitMQ
Best for: Complex routing, enterprise messaging
- Robust message delivery guarantees
- Advanced routing capabilities
- Excellent monitoring tools
- Supports delayed/scheduled messages (with plugin)
SurrealDB
Best for: When you already use SurrealDB, embedded queues
- Use your existing database
- In-memory option for testing
- Good for embedded scenarios
Feature comparison
| Feature | Redis | RabbitMQ | SurrealDB |
|---|---|---|---|
| Connection pooling | ✅ | ✅ | ✅ |
| Retry handling | ✅ | ✅ | ✅ |
| Message scheduling | ✅ | ✅ (with plugin) | ✅ |
| Fairness queues | ✅ | ❌ | ❌ |
| Management API | ✅ | ✅ | ❌ |
| In-memory mode | ❌ | ❌ | ✅ |