← Back to microservices patterns map
📨
Microservices Pattern

Asynchronous Messaging

Services communicate through a broker so producers and consumers can scale independently.

async

Detailed Description

Messaging removes temporal coupling. A producer can publish work even when consumers are slow or temporarily unavailable.

The design needs idempotent consumers, dead-letter queues, and observability around lag and failures.

Visual Diagram

Message Broker Pattern
  OrderSvc  →  publish(OrderPlaced)  →  [Broker]
                                          ↓         ↓
                                     EmailSvc  InventorySvc
                                     processes  processes
                                     async      async

Broker: Kafka, RabbitMQ, SQS, NATS

Tradeoffs

Pros

Decoupled, resilient, absorbs spikes

Cons

Eventual consistency, ordering, harder debugging

Examples: Kafka, RabbitMQ, SQS, NATS