Vocabulary for Message Queue Systems: Queues, Topics, and Dead Letters

Essential English vocabulary for message queue systems: producers, consumers, topics, partitions, DLQs, backpressure, and how to use each term correctly in context.

Message queues let services talk to each other asynchronously — one service drops a message, another picks it up later. Kafka, RabbitMQ, SQS, and their cousins all share a dense vocabulary: producers, consumers, topics, partitions, dead-letter queues. Many of these words are metaphors that confuse non-native speakers. This guide explains the essential terms in context so you can read the docs and discuss queues fluently.


The fundamental roles

TermMeaningIn a sentence
ProducerSends messages into the queue”The API is the producer.”
ConsumerReads messages out”The worker is the consumer.”
BrokerThe server that holds messages”Kafka brokers store the data.”
MessageA single unit of data”Each message is a JSON event.”

The core verbs: producers publish, send, or enqueue messages; consumers consume, read, poll, or process them.

“The producer publishes an order event; the consumer polls the queue and processes each message.”


Queue vs topic

This distinction trips up many people.

  • Queue — point-to-point; each message goes to one consumer (e.g. SQS, RabbitMQ queue)
  • Topic — publish/subscribe; each message goes to all subscribers (e.g. Kafka topic, pub/sub)

“Use a queue when one worker should handle each job. Use a topic when multiple services each need a copy of the event.”

The two models are point-to-point vs publish/subscribe (pub/sub) — essential architectural vocabulary.


Ordering and partitioning

TermMeaning
PartitionA subdivision of a topic for parallelism
OffsetA message’s position in a partition
OrderingWhether messages arrive in sequence
Partition keyDecides which partition a message goes to
Consumer groupA set of consumers sharing the work

“Kafka only guarantees ordering within a partition. If you need orders processed in sequence per customer, use the customer ID as the partition key.”

The verb commit appears here: a consumer commits its offset to record how far it has read.

“If the consumer crashes before it commits the offset, it’ll reprocess those messages on restart.”


Delivery guarantees

These three phrases are critical and precise:

GuaranteeMeaning
At-most-onceMay lose messages, never duplicates
At-least-onceNever loses, may duplicate
Exactly-onceNo loss, no duplicates (hard to achieve)

“We use at-least-once delivery, so consumers must be idempotent — processing the same message twice must be safe.”

Idempotent (safe to repeat) is the word that makes at-least-once delivery survivable. Memorise it.


The dead-letter queue (DLQ)

When a message can’t be processed after several tries, it goes to a dead-letter queue — a holding area for failed messages.

TermMeaning
DLQ (dead-letter queue)Where failed messages go
Poison messageA message that always fails
RedriveRe-sending DLQ messages to retry
Retry / redeliveryAttempting again
Max retriesThe limit before dead-lettering

“After three failed attempts, the message is dead-lettered. We inspect the DLQ, fix the bug, then redrive the messages back to the main queue.”

A poison message (one that always fails and blocks processing) is vivid, common vocabulary.

“One poison message was blocking the whole partition — every retry failed, so nothing behind it could progress.”


Flow control vocabulary

TermMeaning
BacklogA buildup of unprocessed messages
LagHow far behind the consumer is
BackpressureSlowing producers when consumers can’t keep up
ThroughputMessages processed per second
DrainProcess the backlog down to empty

“Consumer lag is growing — the backlog is up to 50k. The consumers can’t keep up, so we need to either scale them out or apply backpressure on the producer.”

The verbs: a backlog builds up or piles up; you drain it down; lag grows or catches up.

“We scaled out the consumers and the backlog drained in twenty minutes — lag is back to zero.”


Phrases for queue discussions

  • “Messages are piling up in the queue.”
  • “The consumer fell behind during the spike.”
  • “Let’s drain the DLQ and figure out why these failed.”
  • “We’re dropping messages — the queue overflowed.”
  • “Add more consumers to catch up on the backlog.”

“During the incident, the consumer fell behind and the backlog ballooned. Once we added workers, it caught up and the lag dropped to zero.”


Common mistakes

  1. Confusing queue and topic. Queue = one consumer per message; topic = all subscribers get it. Wrong choice means duplicated or missed processing.
  2. Saying “the queue is slow” vaguely. Be precise: “consumer lag is high” or “throughput dropped.”
  3. Forgetting “idempotent.” With at-least-once delivery, consumers must be idempotent. It’s not optional vocabulary.
  4. Mixing “publish” and “produce.” Both are fine, but “the producer publishes” is the cleanest pairing.
  5. Mispronouncing “queue.” It’s just /kjuː/ — “kyoo.” The “ueue” is silent.

Quick reference glossary

  • Fan-out — one message delivered to many consumers
  • Fan-in — many producers into one queue
  • Acknowledge (ack) / nack — confirm / refuse a message
  • Visibility timeout — how long a message is hidden while being processed
  • Replay — reprocessing past messages from an offset
  • Ordering guarantee — promise about message sequence
  • Durable — messages survive a broker restart

“Make the queue durable so messages survive a restart, set a sensible visibility timeout so they’re not redelivered mid-processing, and ack only after successful processing.”


A mini-dialogue

A: “Why is the order service falling behind?”

B: “There’s a poison message in partition 3 — it keeps failing and blocking everything behind it.”

A: “Can we dead-letter it?”

B: “Yes — bump max retries down so it hits the DLQ faster. Then the backlog should drain and lag will catch up.”


Key takeaways

  • Know the roles: producers publish, consumers poll/process, brokers store.
  • Distinguish queue (point-to-point) from topic (pub/sub).
  • With at-least-once delivery, consumers must be idempotent.
  • Failed messages go to the DLQ; a poison message can block a partition.
  • Watch lag and backlog; scale out consumers to drain and catch up.

Master this vocabulary and message-queue docs stop being cryptic — and your next “why is the consumer lagging?” conversation will be crisp and confident.