Notification Channel Service
Component Detail
Description
Routes each notification event to the appropriate delivery channels (push, email, SMS) based on per-type configuration and user preferences. Enforces GDPR opt-out at dispatch time with immediate effect, and records delivery attempts and status back to the notifications table.
notification-channel-service
Sources & reasoning
Central routing service required to direct notification events to email and SMS in addition to push. The source doc reveals 40% dissatisfaction with follow-up, motivating reliable multi-channel delivery. Handles per-type channel configuration, GDPR opt-out enforcement, and status tracking as described in the feature implementation notes.
No source references — this artifact was included based on reasoning alone (see above).
Responsibilities
- Determine delivery channels for each notification event based on org config and user notification_settings
- Dispatch outbound messages to Email/SMS Gateway or Push Notification Service accordingly
- Enforce GDPR opt-out rules before any outbound dispatch
- Write delivery status and timestamp back to the notifications table
- Support fallback delivery when push is unavailable or uninstalled
Interfaces
dispatch(notificationId, channels[])
resolveChannels(userId, notificationType): Channel[]
recordDeliveryStatus(notificationId, channel, status)
isOptedOut(userId, channel): boolean
Related Data Entities (6)
Data entities managed by this component