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

When you create a CloudAMQP instance are all the common protocols available by default (the web-stomp plugin/WebSockets is only 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 is using an asynchronous protocol in which the sender and the receiver do not operate on the message at the same time.

The protocol only defines the communication between the client and the server and has no impact on a message itself. One protocol can be used when publishing and you can consume using another protocol. MQTT with its minimal design 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 for this specific type of scenarios.