Traducción. Autoritativo: ../../adr/adr-019-notification-cascade.md.
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).