A Look at Different Open Source Message Brokers

Saeed Ahmad
Nov 14 · 4 min read
Image for post
Image for post
Photo by Joan Gamell on Unsplash

As engineers, we want our applications to be decoupled from each other and follow an architecture that’s distributed in different parts or services. This makes it easy to disintegrate, replace, or remove different parts without affecting the overall functionality of the applications and software systems.

Messaging is an important part of software systems. It’s a norm to send or receive messages in text and other formats to-and-fro your software system. This is where message brokers come into play.

What they do is that they manage all of your messages by exposing a simple API for you to send and receive messages. Internally, message brokers use a queue to manage all the messages and work on the principle of LIFO (Last-In, First-Out).

RabbitMQ

Image for post
Image for post
RabbitMQ Architecture and Working — [Source]

RabbitMQ is the most widely deployed and popular open-source message broker. It’s written in Erlang and is backed by the Pivotal Software Foundation.

RabbitMQ can be downloaded from the official website for all of the major operating systems i.e Linux, Windows, and macOS. It’s recommended to use plugins with RabbitMQ to ease the workload of message brokers and expand their range of functions.

The most important plugin is the management plugin. Although it’s a part of the normal installation you have to activate it manually. The management plugin helps users to operate RabbitMQ using it through a Graphical User Interface, and facilities like viewing different statistics related to messaging and also keeping an overview of all of the operations and data happening in queues.

Kafka

Image for post
Image for post
Kafka Architecture and different services — [Source]

Kafka is another messaging system and a robust queue broker that has the ability to handle a high volume of messages and allows you to send messages from one point to another seamlessly.

Messages in Kafka are stored on the disk. After that, they are replicated within the whole cluster to prevent unwanted operations from happening like any data loss. It’s heavily used in real-time streaming data analysis applications because of its integration with Apache Storm and Spark.

As compared to message and queue brokers like ActiveMQ and RabbitMQ, high performance is offered by Kafka. It is also a better and suitable solution for the implementation of Queues since it boosts performance by using sequential disk I/O.

Also, it is a perfect choice for big data use cases since it can achieve high throughput with limited resources, i.e., millions of messages per second.

ActiveMQ

Image for post
Image for post
ActiveMQ Artemis Architecture — [Source]

ActiveMQ is an open-source message broker developed by the Apache Foundation. It’s written in Java and can serve as a backbone for your applications that depend on online messaging.

After its first release, ActiveMQ has grown into a big competitor for its commercial alternatives, and some of the big companies like Intuit, Awin, JVM stack, or Better use ActiveMQ in production for their services.

The main advantage of using ActiveMQ is that it’s very easy to use alongside providing you with all advanced features like clustering, caching, logging, and message storage.

IBM MQ

IBM MQ Network — [Source]

Previously known as WebSphere MQ, IBM MQ is a messaging and queueing solution that helps you to rapidly transport message data in different formats between systems, software applications, and services. It can be run as software, on multiple clouds, and also on the mainframe systems.

IBM MQ allows you to connect software applications seamlessly and couples nicely with the older applications as well. It also facilitates sending data as messages over the message-queueing network.

A good thing about IBM MQ is that it has various plugins that you can use to extend its functionality. Connect IBM MQ helps you to connect services, applications, and systems, whether they are on-premises, in the cloud, or both.

Protect IBM MQ also enables you to protect all of the messaging data on the move with TLS encryption. Protect plugin also helps you to protect the data that is on the disk — which might be accessible to those with the disk access — by encrypting all the messaging data automatically.

This helps you to protect not only your business but also your customers. Alongside that, the Simplify plugin provides you a single messaging backbone that makes your application development seamless by building transactionality, removing the need for close coupling, and also adding certain security features to protect the application.

Conclusion

A lot of open-source and closed source messaging platforms are there and new are on their way to solve the problems that engineers face with scheduling and all related stuff. So, it’s really necessary that you understand the ins and outs of different tools and then pick up one that fits your needs.

JavaScript In Plain English

New JavaScript + Web Development articles every day.

Saeed Ahmad

Written by

I help developers to be better engineers! 💻 Software Engineer | 📈 Data Science | 💼 Entrepreneurship | 🧠 AI | 🖋️ Writer at DEV with 250K+ views.

JavaScript In Plain English

New JavaScript + Web Development articles every day.

Saeed Ahmad

Written by

I help developers to be better engineers! 💻 Software Engineer | 📈 Data Science | 💼 Entrepreneurship | 🧠 AI | 🖋️ Writer at DEV with 250K+ views.

JavaScript In Plain English

New JavaScript + Web Development articles every day.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store