rabbitmq-rails
Installation
SKILL.md
RabbitMQ in Rails
RabbitMQ is the right tool for complex routing (one publisher, many topologies of consumers), heterogeneous workers (Ruby + Python + Go all reading the same queue), and work distribution. Wrong tool when you need replay, long retention, or stream semantics — that's Kafka.
The opinion
Use
bunny(synchronous AMQP client) for producing. Usesneakersfor consuming long-running workers (it integrates with Rails). Always declare durable exchanges + queues + persistent messages. Acknowledge manually (manual_ack: true) after work succeeds — autoack drops messages on crash. Set a saneprefetch(10-50) per consumer. Use a dead-letter exchange for failures.
Counter-positions:
- Kafka for event streams with replay / fan-out / retention. RabbitMQ deletes messages after ack.
- Solid Queue / Sidekiq for in-app jobs. Don't pull in RabbitMQ for a delayed email.
- Redis Streams for lightweight Kafka-like patterns (see
redis-streams-rails).