Work queue (competing consumers)

Multiple consumers read from a single queue, each processing a different message. Tasks are distributed across workers automatically. Scale consumers horizontally to process faster.

Fan-out / pub-sub

One message is delivered to multiple queues. In AWS: SNS topic → multiple SQS queues. Each subscriber gets its own copy. Use for: domain events consumed by multiple downstream services.

Priority queue

RabbitMQ supports per-queue priorities (1–255). High-priority messages are delivered first. SQS does not support priorities natively — use separate queues with different worker counts to simulate priority.

Poison messages

A message that consistently causes consumer failure. Without handling, it blocks the queue or retries infinitely. Solution: after N failures, move the message to a Dead Letter Queue (DLQ) and alert. Inspect and reprocess DLQ messages manually.

Visibility timeout (SQS)

When a consumer reads a message, it becomes invisible for the visibility timeout. If processing succeeds, the consumer deletes the message. If the consumer crashes, the message reappears after the timeout. Set the timeout to 2× your expected processing time.