AlgoMaster Newsletter

AlgoMaster Newsletter

Pub-Sub vs Message Queue vs Message Broker

What’s the difference?

Ashish Pratap Singh's avatar
Ashish Pratap Singh
Dec 10, 2025
∙ Paid

When you’re working on a distributed system and need components to communicate asynchronously, you’ll hear terms like: “pub-sub”, “message queue”, and “message broker”.

Although they are used interchangeably sometimes, they’re not the same thing.

Simply put:

A message broker is the infrastructure. Message queues and pub-sub are messaging patterns that brokers implement.

In this article, we’ll explore:

  • What each term means

  • How they differ architecturally

  • When to use each pattern

  • Real-world examples and use cases

  • How modern systems like Kafka, RabbitMQ, and Redis fit in


1. The Core Concepts

Before diving into comparisons, let’s define each term clearly.

1.1 Message Broker

A message broker is the middleware infrastructure that receives, stores, and routes messages between producers and consumers. It’s the “thing” that sits in the middle.

Think of a message broker like a post office. It receives mail (messages), stores it temporarily, and delivers it to the right recipients based on addresses (routing rules).

Examples: RabbitMQ, Apache Kafka, ActiveMQ

Key responsibilities:

  • Accept messages from producers

  • Store messages durably or transiently

  • Route messages to appropriate consumers

  • Handle delivery guarantees (at-least-once, exactly-once)

  • Manage consumer acknowledgments

1.2 Message Queue

A message queue is a messaging pattern where messages are sent to a queue and consumed by exactly one consumer. Messages are typically processed in order and removed from the queue after consumption.

Message queues enable asynchronous service-to-service communication, especially in serverless and microservices architectures. They allow you to build reliable background processing, work distribution, and decoupled systems.

Examples: SQS queues, RabbitMQ queues

When multiple consumers connect to the same queue, they compete for messages. Each message goes to exactly one consumer.

Key Characteristics:

  • Delivery: Exactly one consumer receives each message

  • Ordering: First-In-First-Out (FIFO) ordering within a single queue

  • Persistence: Messages stored until consumed and acknowledged

  • Acknowledgment: Consumer must confirm successful processing

  • Retry: Failed messages can be retried or dead-lettered

1.3 Pub-Sub (Publish-Subscribe)

Pub-Sub is a messaging pattern where publishers send messages to topics, and all subscribers to that topic receive a copy of the message. Messages are broadcast, not consumed exclusively.

Think of it like a radio broadcast. The station (publisher) broadcasts a signal (message), and everyone tuned to that frequency (subscribers) receives it simultaneously.

It’s an asynchronous communication model that decouples services, making it easier to build scalable, event-driven systems. Pub/Sub is widely used in modern cloud architectures to deliver instant event notifications and enable reliable communication between independent components.

Examples: Redis Pub/Sub, SNS

Pub-sub naturally implements fan-out in event-drive architectures, where one event triggers multiple actions:

Key Characteristics:

  • Delivery: One-to-many. Each message delivered to all subscribers.

  • Decoupling: Publishers and subscribers are decoupled

  • Scalability: Easy to add new subscribers

  • Persistence: Messages may or may not be removed after delivery (depends on implementation)


2. How Brokers Implement Both

This post is for paid subscribers

Already a paid subscriber? Sign in
© 2026 Ashish Pratap Singh · Privacy ∙ Terms ∙ Collection notice
Start your SubstackGet the app
Substack is the home for great culture