Monday, May 17, 2010

My thoughts on RabbitMQ

It is no mystery that I have been following the Spring Portfolio for sometime now.  As I continue to observe the business decisions they are making, its exciting to see how SpringSource is positioning itself to be a powerful player in the Enterprise Development arena.  Some months ago, SpringSource announced their acquisition of RabbitMQ and I thought I should get familiar with their choice for messaging solution.

I'm not going to discuss the associated need for a messaging system as a solution to integration of systems (Message Oriented Middleware). Instead I will mention a couple of observations about RabbitMQ. 

First, the idea behing AMQP (Advanced Messaging Queuing Protocol) seems to emphasize the idea of interoperability.  I have worked in environments where .NET integration was always a requirement, hence WS-* was always a compelling solution in so many ways. The idea of having a standard to establish a messaging contract (as opposed to an API such as JMS) seems a very powerful one. Of course, this makes even more sense when you think that a messaging system in the cloud ought to support a heterogenous environment.

In addition to this, there is already a trend about understanding comparisons between AMQP and XMPP (a favorite choice).  I was very pleased to find these remarks favoring AMQP for many good reasons, which I'm yet digesting myself. And today I came across this article explaining High Availability lessons learned in Reddit and how RabbitMQ was a "key" component in their architecture. I have a personal project I have been working on which I can disclose just yet, however I can't wait to start playing with more features from RabbitMQ client and server to implement some of my business requirements.

So far, I just finished installing it in MacOSX (using macports):

   sudo port install rabbitmq-server

And the install happened fairly fast. I'll try to post some of my findings as I go. Exciting times ahead!

No comments: