Work Queues

Beanstalkd

Beanstalk is a simple, fast work queue. Its interface is generic, but was originally designed for reducing the latency of page views in high-volume web applications by running time-consuming tasks asynchronously. Philotic, Inc. developed beanstalk to improve the response time for the Facebook application (with over 9.5 million users). Beanstalkd now  is a super-simple job queue and has great PHP support as well as other languages. It has a selection of client libraries so you can use whatever works best for the application you want to use it with.

RabbitMQ

RabbitMQ is a platform, which implements a messaging system between the components of a software system (Message Oriented Middleware) which is based on the standard AMQP (Advanced Message Queuing Protocol). RabbitMQ is released under the Mozilla Public License. RabbitMQ is based on proven Open Telecom Platform, providing high reliability and performance of the industrial level and is written in Erlang.

RabbitMQ consist of:

  • RabbitMQ server
  • Protocols support HTTP, XMPP and STOMP
  • AMQP client libraries for Java and NET Framework (supporting of other languages is implemented in software from other manufacturers)
  • Various plug-ins (such as plug-ins for monitoring and control via HTTP or Web interface or plugin «Shovel» to transmit messages between brokers)

RabbitMQ supports horizontal scaling to build a clustered architecture. There is a realization of clients to access the RabbitMQ for a variety of programming languages and platforms that are widely used for web development: Java, .NET, Perl, Python, Ruby, PHP and others. Mnesia is used as the database engine to store messages.