> ## 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 — Sistema de notificaciones en cascada

> La resolución de canal es una función pura de core sobre cuatro niveles de configuración (plataforma → tenant → módulo → tipo de evento) más las compuertas del destinatario: consentimiento, supresión y preferencias.

Estado: Propuesto · Refs: DEC-E1..E8, standards/notifications.md

> Traducción. Autoritativo: [`../../adr/adr-019-notification-cascade.md`](/adr/adr-019-notification-cascade).

## Decisión

La resolución de canal es una función pura de core sobre cuatro niveles de configuración (plataforma
→ tenant → módulo → tipo de evento) más las compuertas del destinatario (consentimiento, supresión,
preferencias, quiet hours y caps para marketing). Los adaptadores
(`NotificationChannelPort`) solo entregan. Los canales llegan como filas de catálogo y puertos desde
el día 1; los adaptadores aterrizan por fase (email, in-app y webhook, push en F1a-F1b; SMS en F1b
tras el ADR del proveedor; whatsapp y live\_activity en F2). Trazabilidad completa por
`correlation_id` + `send_status_history`. Fallback entre canales: F2, configurable por evento
(anotado, no construido).

## Consecuencias

* Todo módulo gana notificaciones multicanal por configuración, no por código. + Un solo lugar donde
  razonar sobre las compuertas de cumplimiento. − La superficie de configuración necesita buena UX de
  consola (F1b).
