Message queuing is a one-way communication style that provides asynchronous interaction between systems. As this chapter continues to describe how message queues work, the benefits will become clear. Some background on the request-response message exchange pattern will shed light on how RabbitMQ works.
The request-response message exchange pattern
There are many types of message exchange patterns, but the request-response style is the most common. A system, acting as a client, interacts with another remote system, which is acting as a server. The client sends a request for data, and the server responds to the request, as shown in the following diagram:
![](https://static.packt-cdn.com/products/9781789131666/graphics/assets/55761e1c-afc1-4fe2-8ffa-338ca2cfc21b.png)
The request-response style is used when the client must have an immediate response or wants the service to complete a task without delay, such as being placed on hold when calling a restaurant to reserve a table:
![](https://static.packt-cdn.com/products/9781789131666/graphics/assets/71dd3f7d-9555-4fe8-a6fd-a21aca382a9d.png)