There are four main benefits of using queuing systems

Asynchronicity
Messages allow for asynchronicity. They can be sent and received at any moment. Processes at the various ends of the queues don't need to be aware of the state of the rest of the system. With asynchronicity, long-running tasks don't block UI since they're performed in the background.

Decoupling
Each part of the service does only one thing. Each part is notified when it needs to perform a task, and after completion it sends a notification that the task is complete. You don't need REST API or other RPC methods—with message queuing, there's simple message flow in both directions.

Flexibility
When queuing systems provide client libraries for different platforms, it's easier to connect parts of the system that are written in different languages. 

Scalability
Scaling is easier with messages since you can add more consumers that process data and run tasks. Producers don't need to be aware of how many consumers there are; all they need to know is which queue the message should be put into.

Comments