RabbitMQ acts as a middleware between producers and consumers of messages.
- Guarantees the delivery and order of the messages that are consumed, respecting the order of arrival and only consumed once.
- Redundancy of messages in different queues, allows high availability and fault tolerance.
- Flexible routing.
- Decoupling thanks to intermediate layers of inter-process communication.
- Scalability with more processing units, queues can balance your loads.
Source: Official website