← 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

Producer -> Broker topic/queue
Consumer A pulls
Consumer B pulls
Producer does not wait

Tradeoffs

Pros

Decoupled, resilient, absorbs spikes

Cons

Eventual consistency, ordering, harder debugging

Examples: Kafka, RabbitMQ, SQS, NATS