Building Blocks

Message Queues

Understanding message queues for asynchronous communication.

2 min readConcepts · System Design

What is a Message Queue?

A Message Queue is a form of asynchronous service-to-service communication. Messages are stored in a queue until they are processed and deleted by a consumer.


How It Works


Key Concepts

ConceptDescription
ProducerSends messages to queue
ConsumerReceives and processes messages
QueueStores messages until consumed
MessageUnit of data being transferred
ACKAcknowledgment of receipt/processing

Delivery Guarantees

GuaranteeDescriptionUse Case
At-most-onceMay lose messagesMetrics, logs
At-least-onceMay duplicate messagesMost applications
Exactly-onceNo loss, no duplicatesFinancial transactions

Benefits

BenefitHow
DecouplingProducers don't need to know consumers
ResilienceMessages persist if consumer down
ScalabilityAdd more consumers for throughput
Load levelingAbsorb traffic spikes
Async processingNon-blocking operations

Message Queue Patterns

Point-to-Point

One message → one consumer:

Work Queue

Distribute tasks among workers:


SystemStrengths
RabbitMQFlexible routing, multiple protocols
Amazon SQSManaged, serverless
Redis (Lists)Simple, in-memory
ActiveMQEnterprise features

Use Cases

  • Email sending
  • Image/video processing
  • Order processing
  • Log aggregation
  • Background jobs

Interview Tips

  • Explain producer-consumer pattern
  • Discuss delivery guarantees and trade-offs
  • Mention dead letter queues for failed messages
  • Compare with pub/sub pattern
  • Give examples: order processing, email sending

Finished reading?

Mark it done to track your progress in Concepts.