> ## Documentation Index
> Fetch the complete documentation index at: https://internal.softcrum.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ADR-019 — Cascading Notification System

> 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).

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).
