I am the author of the Learning RabbitMQ course on LinkedIn Learning. Chandrashekar asked the following question:
I would really appreciate it if you could share some case studies or examples for RabbitMQ.
So let’s look at some scenario’s where RabbitMQ is ideal.
To do so, I’ll first recap the advantages of using a message broker to integrate systems.
Advantages of Message-Based Systems
In the first video of my course, I listed these advantages:
- The sender only needs to know the location of the message broker, not the addresses of all possible receivers.
- It’s possible to have multiple receivers for a message.
- We can easily add new receivers without any changes in the sender.
- Messages can be queued, ensuring delivery after a receiver has been down.
In short, senders and receivers are decoupled from each other.
But message-based systems have consequences too.
Consequences of Message-Based Systems
The most important consequence is that your messaging is now asynchronous. Although it can be made to mimic synchronous communication.
So given these properties, what are some scenario’s that work well with message-based systems?
Ideal Scenario’s
I’ve listed three possible scenario’s below, but this is by no means a full list or the top three. It’s just a few examples I could come up with.
Mobile Applications
You could use RabbitMQ to send a message to a mobile devices. You aren’t guaranteed that these devices are online or that the app is running.
One solution for this would be to have a queue for each instance of the app. You can send a message to each queue (using a fanout exchange) and then each app can receive the message once they go online:

Critical API’s
Here’s another example. If you have an API that must respond fast but has downstream services that could take a while, a message broker like RabbitMQ can solve this problem.
In such a scenario, you can receive the API call, send a message to the broker and return a response to the caller very fast. The downstream service that would take longer to respond can then take all the time it needs:

Microservices
When you build a system of microservices, you can end up with many, many services. Coordinating communicationg between all these services can be tricky.
RabbitMQ can act as a central broker and services can just subscribe to the type of messages that they need:

If a team creates a new service, it can connect to RabbitMQ and subscribe to the right messages and they’re good to go.
Case Studies
Here are some less abstract examples of using RabbitMQ in a professional environment.
The RabbitMQ website has a case study about LAIKA, a stop-motion picture studio. You can read about it here.
CloudAMQP has a story about Softonic, a software and app discovery service.
If you’re more into video, watch Growing a Farm of Rabbits to Scale Financial Applications. It was the keynote of RabbitMQ Summit 2019. There’s also a talk from the same conference from Goldman Sachs.
And here’s a last article you can read: RabbitMQ on Windows with .NET.
There’s More
These are just a handful of examples. But there are countless other examples and scenario’s where RabbitMQ works well.
If you’re interested in learning how to use RabbitMQ and how it works, check out my LinkedIn Learning course, Learning RabbitMQ.
Hi Peter
Would you recommand the use of NServiceBus on top of RabbitMQ?
This should avoid a lot of boilerplate code to setup RabbitMQ.
Kind regards
Bart
Hi Bart, if you find yourself writing a lot of code that is already in NServiceBus (saga’s, serialization/deserialization, retries, etc), then I would recommend it yes. It would be a waste of time and money to do this yourself (including maintaining that code!).
If you don’t need the power of NServiceBus (or only a tiny bit of it), you could be perfectly fine with just using pure RabbitMQ.
I don’t know your specific situation, but I sense that many enterprises could benefit greatly from NServiceBus. Unfortunately, they often see this as a cost, so it’s up to us developers to convince them of the gains to be made.
Good article