advanced

RabbitMQ queues

Configure queues for durability, exclusivity, TTL, max length, quorum needs, and consumer ownership instead of using defaults blindly.

Queues buffer messages until consumers process them. Durable queues survive broker restarts when combined with persistent messages. Exclusive queues tie to one connection; auto-delete queues vanish when unused. TTL can expire messages or queue entries; max-length policies drop or dead-letter overflow.

Quorum queues trade classic mirrored queues for Raft-based replication and stronger data safety. Lazy queues move messages to disk sooner for very large backlogs. Consumer priority and single-active-consumer modes change fairness under load.

On interviews: explain durability versus persistence, when to use quorum queues, and how TTL and max-length protect the broker from unbounded growth.

Common pitfalls: durable queue with transient messages; no max-length on high-volume ingress; exclusive queues in horizontally scaled workers; ignoring dead-letter behavior when messages expire.

The trade-off is flexibility versus complexity—know when the simpler path is enough.

Checklist:

  • Set durability and persistence consistently.
  • Configure TTL and max-length for burst protection.
  • Choose quorum versus classic with failover needs in mind.
  • Document who owns queue declaration and lifecycle.