logo

Message Queue

A message queue enables asynchronous service-to-service communication. Messages are stored until the receiving service is ready to process them. This decouples sender from receiver, letting each operate independently.

How Message Queues Work

  1. A producer sends a message to the queue
  2. The queue stores the message durably
  3. A consumer reads and processes the message
  4. The message is acknowledged and removed from the queue
  • Redis — In-memory data store often used as a lightweight message broker
  • RabbitMQ — Feature-rich message broker supporting multiple protocols
  • Apache Kafka — Distributed event streaming platform for high-throughput workloads
  • Amazon SQS — Fully managed message queuing service
  • BullMQ — Redis-based queue for Node.js (used by AsyncQueue)

Message Queues vs Task Queues

FeatureMessage QueueTask Queue
Primary purposeMessage deliveryWork execution
Result trackingNoYes
Retry logicBasicAdvanced (backoff, dead-letter)
SchedulingNoYes (cron, delays)
DashboardVariesYes

When to Use a Message Queue

  • Event-driven architectures where services communicate via events
  • Fan-out patterns where one message triggers multiple consumers
  • Log aggregation and stream processing
  • Decoupling microservices for independent scaling