# Channel Adapter

> Connect any application to a message channel — without modifying the application.

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

---

## Description
Clean, reusable architecture pattern.


## Use Cases
Legacy CRM system writes customer updates to a CUSTOMER_UPDATES DB table. Channel Adapter polls the table every 30 seconds, converts new rows to CustomerUpdated messages, publishes to Kafka, and marks rows as processed. Modern microservices consume from Kafka. CRM unchanged.





## Trade-offs


### Advantages

- Integrate applications without touching their source code

- Adapters are the integration seam — change adapter, not the app

- Standard approach for connecting legacy systems to modern messaging

- Enables CDC (Change Data Capture) patterns for DB-backed systems




### Considerations & Drawbacks

- Polling adapters add latency — push-based adapters are more complex to build

- Adapter must track what has been processed (position, timestamp, watermark)

- Adapter failure means missed messages — needs its own monitoring and retry logic

- Tightly coupled to the connected application''s native interface







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

