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 whic...