One message many paths
A channel is a transport for reaching a user: email, SMS, push, in app, or even voice. The same logical notification often maps to different channels depending on urgency, cost, and what the user has set up.
Picking a channel
- Push is cheap and fast but needs an installed app and a valid token.
- SMS reaches almost any phone but costs money per message.
- Email is rich and cheap but has weaker real time delivery.
A router decides the channel using user preferences, message priority, and channel availability.
Channel abstraction
Each channel is wrapped behind a common interface so the core logic does not care about provider details. Adding a new provider means writing one adapter.
This separation keeps the core simple while letting each channel evolve and swap providers independently.
Key idea
Multi channel delivery routes one notification to email SMS or push through a shared adapter interface chosen by context.