Skip to content
igal edited this page Sep 13, 2010 · 7 revisions

Comparison of message queues for Ruby

Igal Koshevoy, updated 2009-06-01

Using message queues effectively can significantly improve the efficiency and responsiveness of applications. Ruby programmers are lucky to have many messaging options to choose from, but are cursed with having to pick between them. This comparison table and source code samples attempt to provide basic information to help Ruby programmers better understand these alternatives:

Name Delayed::Job Kestrel Starling Sparrow beanstalkd memcacheq RabbitMQ ActiveMQ
Pure Ruby Y N (Java) Y Y N (C ) N (C ) N (Erlang) N (Java)
Trivial install Y N Y Y Y Y Y Y
Trivial usage Y Y Y Y Y Y N N
Daemon included N N Y Y Y Y Y Y
Standalone N (Rails only) Y Y Y Y Y Y Y
Reserve N Y N N Y N Y Y
Persistent queues Y Y Y Y N Y Y Y
Lightweight checks N (DB polling) Y Y Y Y Y Y Y
Memcache interface N (database) Y Y Y N (custom) Y N (AMQP) N (Stomp)
Benchmark1 216 893 2902 1182 3702 315 703 434
Praises Easy w/ Rails Parallel? Simple Simple Very fast Easy compile Power Reliable
Annoyances Slow, Rails only Build :( Pruning :( Buggy No persist Slow Client Slowish
Recommended For Rails Maybe Maybe No For speed No For complex For stability

Key Yes No, caution No, warning

Benchmark is a naive measure of sequential puts-gets per second and does NOT accurately represent how these systems will perform under a realistic load.

Clone this wiki locally