The Polyglot Rabbit and the Big Fluffy Cloud


By Erlang Central | Published: March 18, 2013



RabbitMQ (http://www.rabbitmq.com) is a popular 100% Erlang-based Open Source message queuing system that implements the Advanced Message Queuing Protocol (AMQP). It has been estimated that there are presently some 30,000 production deployments of RabbitMQ across the globe, and this number is growing rapidly. Most of these deployments are business-critical, underpinning everything from internet-based pizza ordering systems through to providing the central nervous system for OpenStack-based cloud deployments. RabbitMQ currently supports versions 0.8.0 and 0.9.1 of AMQP and will soon also provide support for 1.0. However, a somewhat overlooked capability of RabbitMQ is its ability to also readily provide support via a flexible plugin architecture for a variety other popular Open Source message queuing protocols, including STOMP, MQTT, ZeroMQ, and RESTful messaging via the RabbitHub plugin.  Most good message queuing protocols share many features in common; however some are better suited to a particular set of use cases than others. This ability of RabbitMQ to be able to seamlessly receive and propagate messages simultaneously via multiple protocols is an extremely powerful facility, and one that affords great flexibility. For example, it means that it is possible to use the most appropriate protocol for a particular function or to simultaneously use different protocols to disseminate the same data to different types of users via the most appropriate protocol without having to develop and maintain any separate gateway components. In this talk the presenter will discuss the multi-protocol features of RabbitMQ and how the capabilities of Erlang have been utilised to implement the powerful RabbitMQ plugin architecture.  An overview of the plugin architecture will be presented along with examples of its use to implement a robust and highly scalable multi-protocol Open Source cloud-based messaging hub.

Talk objectives: To describe the multi-protocol capabilities of RabbitMQ, how Erlang has been used to efficiently implement these capabilities, and how these capabilities can be leveraged to implement a powerful multi-protocol Open Source cloud-based messaging solution.
Target audience: General audience (there will be some content of a technical nature, but this will not be integral to the talk).
Download Presentation Download

Speakers:

  • Brett Cameron

    Senior Architect with Hewlett Packard's corporate Cloud Services
    Hewlett Packard

    Brett Cameron currently works as a senior architect with HP’s corporate Cloud Services group, focusing on the design and implementation of message queuing and related integration services for customers and internal use. Brett lives in Christchurch, New Zealand and has worked in the software industry for some 20 years. In that time he has gained experience in a wide range of technologies, many of which have long since been retired to the software scrapheap of dubious ideas. Brett is involved in the research and development of low-latency and highly scalable messaging solutions for the Financial Services sector running on HP platforms and as a consequence of this work, Brett has been involved in several interesting Open Source projects. He is responsible (or should that be irresponsible) for porting various Open Source solutions (including Erlang and RabbitMQ) to HP’s “legacy” OpenVMS operating system platform. Brett holds a doctorate in chemical physics from the University of Canterbury, and still maintains close links with the University, working as a part time lecturer in the Computer Science and Electronic and Computer Engineering departments. In his spare time, Brett enjoys listening to music, playing the guitar, and drinking beer (preferably cheap Australia lager).

    Brett Cameron