LogoMasst Docs

Message Queues

Understanding message queues for asynchronous communication.

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

Producer                  Queue                  Consumer
    │                       │                       │
    │─── Send Message ─────►│                       │
    │                       │                       │
    │◄── ACK ───────────────│                       │
    │                       │                       │
    │                       │◄── Poll/Pull ─────────│
    │                       │                       │
    │                       │─── Deliver Message ──►│
    │                       │                       │
    │                       │◄── ACK (processed) ───│
    │                       │                       │
    │                       │    (Delete message)   │

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:

Producer ──► Queue ──► Consumer
                  └──► Consumer (competing)

Work Queue

Distribute tasks among workers:

Producer ──► Queue ──► Worker 1
                  ├──► Worker 2
                  └──► Worker 3

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