Cloud Essentials for RabbitMQ - Concepts
Acknowledgment
A confirmation sent by a consumer to RabbitMQ that a message has been processed.
Binding
A link between an exchange and a queue, defining how messages are routed.
Channel
A lightweight connection multiplexed over a TCP connection for performing operations.
Cloud Essentials
Cloud Essentials aims to provide a vast range of technologies, with a focus on easy deployment and a minimal feature set while offering production-ready stability and scalability.
Connection
A TCP connection between an application and the RabbitMQ broker.
Consumer
An application that receives messages from a RabbitMQ queue.
Durability
A property of queues/exchanges that ensures that they survive broker restarts.
Exchange
An Advanced Message Queuing Protocol (AMQP) 0-9-1 entity that receives messages from producers and routes them to zero or more queues based on rules (bindings).
The routing algorithm used depends on the exchange type and the bindings. AMQP 0-9-1 brokers provide four exchange types:
| Exchange type | Default pre-declared names |
|---|---|
| Direct exchange | (empty string) and amq.direct |
| Fanout exchange | amq.fanout |
| Topic exchange | amq.topic |
| Headers exchange | amq.match (and amq.headers in RabbitMQ) |
Besides the exchange type, exchanges are declared with a number of attributes. The most important attributes are:
- Name
- Durability: the exchanges survive broker restarts
- Auto-delete: the exchange is deleted when the last queue is unbound from it
- Arguments: optional, used by plugins and broker-specific features
Exchanges can be durable or transient. Durable exchanges survive broker restarts whereas transient exchanges do not (they have to be re-declared when the broker comes back online). Not all scenarios and use cases require exchanges to be durable.
Message
Data sent by a producer to an exchange, containing a payload and optional metadata.
Payload
In RabbitMQ (and messaging systems in general), a payload refers to the actual data or content of a message that is sent from a producer to a consumer. It is the "body" of the message, distinct from any metadata or headers that might be attached.
Payload example:
{
"order_id": "12345",
"customer_name": "John Doe",
"items": [
{"product_id": "A100", "quantity": 2},
{"product_id": "B200", "quantity": 1}
],
"timestamp": "2026-04-10T12:34:56Z"
}Persistence
A property of messages that ensures they are saved to disk and survive restarts.
Prefetch Count
Limits the number of unacknowledged messages sent to a consumer at once.
Producer
An application that sends messages to a RabbitMQ exchange.
Queue
A buffer that stores messages until they are consumed by an application.
RabbitMQ
RabbitMQ is an enterprise-grade, open‑source message broker that implements the Advanced Message Queuing Protocol (AMQP) to reliably route, queue, and deliver messages between distributed applications, enabling asynchronous communication and service decoupling.
For more details on the AMQP protocol supported by RabbitMQ, see the AMQP 0-9-1 Model Explained document by RabbitMQ.
Routing Key
A key specified by the producer to determine which queue(s) a message should be delivered to.
Virtual Host
A logical grouping of exchanges, queues, and permissions, acting like a mini RabbitMQ server.