igal / rubyqueues

Documents and sample source code describing message queue options for use with Ruby.

This URL has Read+Write access

name age message
file .gitignore Thu Apr 09 09:59:58 -0700 2009 Imported sources. [Igal Koshevoy]
file README.markdown Fri Apr 17 16:14:32 -0700 2009 Replaced "AMPQ" with "AMQP". Doh. [Igal Koshevoy]
directory activemq_stomp_eg/ Thu Apr 09 09:59:58 -0700 2009 Imported sources. [Igal Koshevoy]
directory beanstalkd_eg/ Thu Apr 09 09:59:58 -0700 2009 Imported sources. [Igal Koshevoy]
file comparison.html Wed Jul 01 00:22:57 -0700 2009 Updated comparison.html: beanstalked, emphasize... [Igal Koshevoy]
directory delayed_job_eg/ Thu Apr 09 09:59:58 -0700 2009 Imported sources. [Igal Koshevoy]
directory kestrel_eg/ Thu Apr 09 09:59:58 -0700 2009 Imported sources. [Igal Koshevoy]
directory memcacheq_eg/ Thu Apr 09 09:59:58 -0700 2009 Imported sources. [Igal Koshevoy]
directory rabbitmq_amqp_eg/ Fri Apr 17 17:44:11 -0700 2009 Updated 'RabbitMQ with AMQP' text. [Igal Koshevoy]
directory sparrow_eg/ Tue Apr 14 12:53:15 -0700 2009 Clarified link titles for Sparrow and Starling. [Igal Koshevoy]
directory starling_eg/ Tue Apr 14 12:53:15 -0700 2009 Clarified link titles for Sparrow and Starling. [Igal Koshevoy]
README.markdown

Ruby message queue showdown

Updated: 2009-04-17

Summary

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. These documents and source code samples attempt to provide basic information to help Ruby programmers better understand these alternatives.

Details

Caveat emptor

I have not used most of these messaging systems outside this evaluation, so please perform your own analysis before making an important decision. I'll gladly incorporate additional information and corrections that you send me so that I can accurately represent each alternative.

The naive benchmark does NOT acurately represent the performance of these systems under a realistic workload. This naive benchmark simply has a single client making sequential calls, whereas a realistic workload would include a large number of clients working in bursts. For example, Starling is much faster than Kestrel when talking to a few clients, while Kestrel is allegedly much faster than Starling when talking to a large number of clients.