# Publish-Subscribe Channel

> Broadcast to all subscribers — every listener gets a copy of every message.

- **Category**: Integration
- **Subcategory**: Message Channels
- **Canonical URL**: https://designpattern.fyi/patterns/publish_subscribe_channel/

---

## Description
Clean, reusable architecture pattern.


## Use Cases
User signup event — UserRegistered published to a Pub-Sub topic. Email service sends a welcome email. Analytics service tracks the signup. Recommendation engine initializes preferences. All three react independently. Marketing team adds a fourth service (loyalty program) — zero changes to the publisher or other consumers.





## Trade-offs


### Advantages

- One publisher, N subscribers — zero coupling between publisher and consumers

- Adding subscribers requires no changes to publisher or existing consumers

- Naturally decoupled — each subscriber processes independently at its own pace

- Core pattern for event-driven architecture




### Considerations & Drawbacks

- All subscribers receive all messages — use Message Filter for selective consumption

- No load balancing between subscribers — each gets every message (use Competing Consumers within each subscriber group)

- Publisher has no visibility into whether consumers processed the message

- Message volume multiplies with subscriber count — broker storage and bandwidth scale with N







---
**Reference**: [Original Source](https://www.enterpriseintegrationpatterns.com/patterns/messaging/PublishSubscribeChannel.html)

