Last modified: January 24, 2026

This article is written in: 🇺🇸

Message Queues and Publish-Subscribe Patterns

Message queues enable asynchronous, decoupled communication in distributed systems by allowing publishers to send messages to a queue that consumers process independently, typically in first-in, first-out order. This approach reduces direct dependencies between services, enhances reliability and scalability, and supports multiple publishers and consumers. Additionally, the publish-subscribe pattern uses message brokers to distribute messages to interested subscribers without requiring publishers to manage subscriptions. The following notes include diagrams and best practices for effectively implementing message queues and pub-sub systems.

Message Queue

A message queue is a fundamental building block for asynchronous, decoupled communication in distributed systems. Publishers send messages to a queue, and one or more consumers retrieve those messages in a controlled fashion—often in first-in, first-out (FIFO) order—to process them independently. Below are expanded notes and diagrams illustrating message queues, along with the publish-subscribe pattern.

Basic Message Queue

       +----------+             +-----------+
       | Publisher|             |  Consumer |
       +----+-----+             +-----+-----+
            |                         ^
            |  (Send Message)         |
            v                         |
     +------+-------------------------+------+
     |            Message Queue              |
     +---------------------------------------+
                  (FIFO Retrieval)
Multiple Publishers and Consumers

   +-----------+     +------------+
   |Publisher A|     |Publisher B |
   +-----+-----+     +-----+------+
         |                 |
         |   (Push Msg)    |  (Push Msg)
         v                 v
   +-----+-----------------+------+
   |        Message Queue         |
   +------------------------------+
       ^         ^          ^
       |         |          |
 +-----+----+  +--+-----+  +--+-----+
 |Consumer1 |  |Consumer2|  |Consumer3|
 +----------+  +---------+  +---------+

Publish-Subscribe Pattern (Pub-Sub)

In the pub-sub paradigm, publishers send messages on a topic (or channel) without needing to know who subscribes. Subscribers register interest in one or more topics, receiving all relevant messages without interfering with other subscribers.

ASCII DIAGRAM: Basic Pub-Sub

       +--------------+
       |  Publisher   |
       +------+-------+
              |
      (Publish to Topic)
              v
        +-----+------+
        |  Message   |
        |   Broker   |
        +-----+------+
              |
   +----------+----------+
   |                     |
   v                     v
+-----+-----+       +----+------+
|Subscriber1|       |Subscriber2|
+-----------+       +-----------+
Multiple Topics & Subscribers

     +-----------+
     | Publisher |
     +-----+-----+
           |
    (Publish: TopicA, TopicB)
           v
    +------+---------+
    |  Pub-Sub       |
    |   Broker       |
    +-----+----------+
         /        \
       /            \
      v              v
+-------------+   +-------------+
| Topic A     |   | Topic B     |
| Subscribers |   | Subscribers |
+-----+-------+   +-----+-------+

Concepts in Message Queues and Pub-Sub

Best Practices