A message queue is a form of asynchronous service-to-service communication used in serverless and microservices architectures. Messages are stored on the queue until they are processed and deleted. Each message is processed only once, by a single consumer. Message queues can be used to decouple heavyweight processing, to buffer or batch work, and to smooth spiky workloads.^[What is a Message Queue?

Since in modern cloud architectures, complex applications are divided into smaller, independent and more manageable building blocks (Microservices), implementing a way for services to communicate in an efficient way is not a trivial task.

Message queues provide a lightweight buffer which temporarily stores messages. Services can then connect to the endpoint of that buffer in order to send and receive messages.

A message is something small like a request, a reply, an error message or just plain information.

Imporant

Message queues are a one-to-one communication tool, where a message is processed only once by a single consumer. If a message has to be processed by multiple consumers, it’s possible to combine message queues with Sub Messaging.