Devii · Backend · 2026-04-02 · 8 min read

Share

AMQP And Message Queues: Exchanges, Queues, And At-Least-Once Delivery

How AMQP 0-9-1 models routing, and what acknowledgments mean for worker reliability.

**AMQP** (Advanced Message Queuing Protocol) defines a wire-level protocol for message brokers. **RabbitMQ** implements AMQP 0-9-1 and is widely deployed. Producers publish to **exchanges**; bindings route to **queues**; consumers receive messages with acknowledgments.

Delivery guarantees are **at-most-once** without acks, **at-least-once** with manual ack after processing, and **exactly-once** only with idempotent consumers and transactional patterns (expensive). Most web systems implement at-least-once plus idempotent handlers.

Async workflow design
Async workflow design

Dead-letter exchanges isolate poison messages. TTL and queue limits prevent unbounded memory growth.

Compare with log-based systems (Kafka) when you need replay and retention as a first-class stream. AMQP excels at task distribution and RPC-style workloads.