📡 You're offline — showing cached content
New version available!
Quick Access
Tutorials Microservices Async Messaging Patterns

Async Messaging Patterns

5 min read
Work queues, pub-sub fan-out, dead letter queues, and async RPC — choose the right messaging pattern.

Async Messaging Patterns

# 1. Work Queue (point-to-point)
# One producer, one consumer per message
# Use for: emails, PDF generation, background tasks

# 2. Publish-Subscribe (fan-out)
# One publisher, many subscribers
order-service publishes OrderPlaced
  --> inventory-svc subscribes (reserve stock)
  --> notification-svc subscribes (send email)
  --> analytics-svc subscribes (update metrics)

# 3. Dead Letter Queue (DLQ)
# Failed messages go to DLQ after max retries
# Alert on DLQ depth > 0
# Inspect and replay or discard

# 4. Request-Reply over queue (async RPC)
correlation_id = str(uuid.uuid4())
queue.send('tasks', {cmd:'process',cid:correlation_id})
reply = queue.wait('replies.' + correlation_id, timeout=30)