Message queues are components used for Inter-Process Communication (IPC). As the name suggests, they use the queue data structure to pass messages between different processes. Usually, message queues are a part of Message-Oriented Middleware (MOM) designs.
On the lowest level, message queues are available in UNIX specifications, both in System V and in POSIX. While they are interesting when implementing IPC on a single machine, we would like to focus on message queues that are suitable for distributed computing.
There are currently three standards used in open source software that are related to message queuing:
- Advanced Message Queuing Protocol (AMQP), a binary protocol operating on the application layer of the 7-Layer OSI model. Popular implementations include the following:
- Apache Qpid
- Apache ActiveMQ
- RabbitMQ
- Azure Event Hubs
- Azure Service Bus
- Streaming Text Oriented Messaging Protocol (STOMP), a text-based protocol similar to HTTP (uses verbs such as CONNECT,...