public-rabbitmq-expert-baselisted
Install: claude install-skill seed-forge/harness-ai-kit
# RabbitMQ Knowledge Base
> **Source**: Adapted from [mindrally/skills](https://github.com/mindrally/skills) (rabbitmq-development) and RabbitMQ official documentation.
## Exchange Types
| Type | Routing | Use for |
|------|---------|---------|
| Direct | Exact routing key match | Point-to-point, RPC |
| Topic | Wildcard pattern (`*.info`, `#`) | Flexible pub/sub |
| Fanout | Ignore routing key, broadcast to all bound queues | Broadcast notifications |
| Headers | Match on message headers (not routing key) | Complex routing rules |
- Default exchange (empty name): direct routing by queue name. Convenient but not recommended for production.
- Always declare exchanges explicitly; don't rely on auto-created exchanges.
## Queue & Routing
- Declare queues with `durable=true` for persistence across broker restarts.
- Bind queues to exchanges with routing keys.
- Use `x-message-ttl` for message expiration.
- Use `x-max-length` to cap queue size (drop or dead-letter oldest).
- Prefetch count (`basic_qos`): limit unacknowledged messages per consumer.
## Durability & Reliability
- `durable=true` on queue + `persistent` delivery mode on message = survive broker restart.
- Publisher confirms: `confirm_select()` → broker acknowledges message receipt.
- Consumer acknowledgments: `basic_ack` (success) / `basic_nack` (failure, requeue or dead-letter).
- Never use `auto_ack=true` in production (message loss on consumer crash).
## Dead Letter Exchange (DLX)
- Messages are dead-lettered w