RabbitMQ is a message broker that allows clients to connect over different open and standardized protocols such as AMQP, HTTP, STOMP, MQTT and STOMP over WebSockets.

When creating a CloudAMQP instance, all the common protocols are available by default (the web-stomp plugin/WebSockets can only be enabled on dedicated plans.) Most message queuing protocols share many features in common. However, some are better suited to a particular set of use cases than others. In the simplest case, a message queue uses an asynchronous protocol in which the sender and the receiver do not operate on the message simultaneously.

The protocol only defines the communication between the client and the server and doesn’t impact the message itself. One protocol can be used when publishing, and another protocol for consuming. With its minimal design, MQTT makes it perfect for built-in systems, mobile phones, and other memory and bandwidth-sensitive applications. A specific task may as well be achieved using AMQP, but MQTT might be a more appropriate choice of protocol in this particular type of scenario.