Skip to main content
Status: Proposed · Refs: DEC-E1..E8, standards/notifications.md

Decision

Channel resolution is a pure core function over four config levels (platform → tenant → module → event type) plus recipient gates (consent, suppression, preferences, quiet hours/caps for marketing). Adapters (NotificationChannelPort) only deliver. Channels ship as catalog rows + ports from day 1; adapters land by phase (email/in_app/webhook/push F1a-F1b; SMS F1b behind provider ADR; whatsapp/live_activity F2). Full traceability chain via correlation_id + send_status_history. Cross-channel fallback: F2, per-event config (noted, not built).

Consequences

  • Every module gains multi-channel notifications by configuration, not code. + One place to reason about compliance gates. − Config surface needs good console UX (F1b).