Hello, I hope you are doing well and learning every day as I always say. So in today’s blog, we are going to see and learn a very different topic which is related to communication between the multiple applications or you can say the messaging between the multiple applications. We are going to know about a messenger RabitMQ.
In the previous post, we discussed Akka and how to create its child from Akka Actors. If you have not read that blog then you can read that from here.
Let’s talk about it now without waiting anymore.
RabitMQ
What is RabitMQ?

RabitMQ is an open-source message broker software which works on Advanced Message Queuing Protocol(AMQP). We can call this message-oriented middleware.
In other words, messenger RabitMQ provides us a feature of messaging and this messaging feature enables software applications to connect and scale. Applications can connect to each other, as components of a larger application, or to user devices and data.
This communication between the applications or messaging is asynchronous(means the messaging happens continuously without any wait), decoupling applications by separating sending and receiving data.
When the message is sent from one application to another then the message is completely safe with RabitMQ until it reaches the other point. Therefore messenger RabitMQ provides us a common platform to connect multiple applications and to send and receive messages between them.
Example of RabitMQ
Having a complex project with so many feature applications and when we require to separate a few application but want to run the whole project at a same time. In this, we use this messaging feature of RabitMQ which allowed us to send a message from one application to another to run simultaneously.
Who uses RabitMQ?
There are large number of companies that are using RabitMQ and it is also used and trusted by large companies (Zalando, WeWork, Wunderlist, Bloomberg, and more). All rely on a microservice-based architecture.
What can RabbitMQ do for you?
RabitMQ provides you many features which makes your work easy and sorted, it removes the complexity of the application’s structure. Some of the features of RabitMQ are:
Reliability
RabitMQ provides you variety of features that make your application performance better. It provide persistence, delivery acknowledgement and high availability.
Flexible Routing
Messages are routed through exchanges before arriving at queues. There are many built-in typical route logic and with that, you can also bind exchanges together or you can also write your own exchange types as plugins.
Clustering
Several RabbitMQ servers on a local network can be clustered together, forming a single logical broker.
Multi-Messaging protocols
RabitMQ allows or supports messaging over a variety of messaging protocols.
Many users
Many or you can say most of the languages are using the RabitMQ messaging feature.
The RabbitMQ broker is scalable and flexible
Your team only needs to maintain the producers and the consumers sending and receiving messages to/from the queue. Under heavy load, if the queue grows larger, the standard reaction is to add more consumers and parallelize the work.
RabbitMQ is user-friendly
It is easy to tweak the configurations to suit the intended purpose. RabbitMQ is written in Erlang and is the world’s most deployed open-source message broker, meaning that it’s a well-tested, robust broker.
So that is all for this blog. This was the basic learning of the RabitMQ and in the next coming blog, we will try to demonstrate the hand on practice of RabitMQ. I hope you will keep learning every day and I will see you in the next blog with some other interesting topics.
