Service Layer medium complexity backend
0
Dependencies
0
Dependents
6
Entities
0
Integrations

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.

Feature: Email/SMS Notifications

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