Maybe you’re working on an ETL job that needs to make use of massively parallel processing. Or maybe there are some aspects of your application that need to be decoupled into asynchronous micro-services. RabbitMQ is a feature-packed, open-source AMQP broker that can help with the above problems and many more. Written in Erlang (though you don’t need to know Erlang to use it) and built over TCP, it’s sure to hit the performance needs for your application. If you need proof, read about how Pivotal and Google collaborated to achieve one million messages per second using RabbitMQ.

While it’s pretty easy to get started with RabbitMQ, there are many facts about how the broker is put together that I’ve learned over the years that would have saved me significant time and headaches to know from the beginning. I’d like to convey those in this article, which assumes a basic knowledge of RabbitMQ such as creating connections, channels, exchanges, queues and publishing/subscribing.

Continue reading →