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

# R1 · Messaging

> La capa de notificación de toda la plataforma: cascada de canales, plantillas, envíos con historial de estados, supresiones y campañas. Los demás módulos emiten eventos; este los convierte en mensajes.

Schema `messaging`. Es infraestructura transversal disfrazada de módulo: Loyalty y CRM no envían
nada, emiten eventos que esta entrega consume.

|               |                                                       |
| ------------- | ----------------------------------------------------- |
| Feature specs | 9 · [ver módulo](/modules/messaging/overview)         |
| Tablas        | 19 · [modelo de datos](/modules/messaging/data-model) |
| APIs          | [ver listado](/modules/messaging/api)                 |
| Depende de    | Customer Core                                         |

## Alcance

**Se construye primero:**

| Spec                                                                            | Qué entrega                                                         |
| ------------------------------------------------------------------------------- | ------------------------------------------------------------------- |
| [FS-MSG-0001](/modules/messaging/features/fs-msg-0001-channel-cascade)          | El catálogo de canales y la resolución en cascada de cuatro niveles |
| [FS-MSG-0002](/modules/messaging/features/fs-msg-0002-templates)                | Plantillas de mensaje                                               |
| [FS-MSG-0003](/modules/messaging/features/fs-msg-0003-sends-and-status)         | Envíos e historial de estados                                       |
| [FS-MSG-0004](/modules/messaging/features/fs-msg-0004-suppressions-preferences) | Supresiones y centro de preferencias                                |
| [FS-MSG-0005](/modules/messaging/features/fs-msg-0005-dual-rail-dispatch)       | Despacho de carril dual: transaccional y marketing separados        |
| [FS-MSG-0006](/modules/messaging/features/fs-msg-0006-channel-adapters)         | Adaptadores: email, in-app, webhook y push                          |

**Completa la propuesta:**

| Spec                                                                          | Qué entrega                                         |
| ----------------------------------------------------------------------------- | --------------------------------------------------- |
| [FS-MSG-0007](/modules/messaging/features/fs-msg-0007-campaigns-and-triggers) | Campañas y disparadores de cumpleaños y aniversario |
| [FS-MSG-0008](/modules/messaging/features/fs-msg-0008-sender-domains)         | Dominios de envío y deliverability                  |
| [FS-MSG-0009](/modules/messaging/features/fs-msg-0009-sms-adapter)            | Adaptador SMS                                       |

## Lo que hace tangible esta entrega

Un evento de fidelización sale como correo al canal correcto, respeta el consentimiento y la
supresión, y su estado de entrega queda registrado. El tenant ve por qué un mensaje no salió, que es
la pregunta que más veces llega a soporte.

## Riesgos propios

* **El carril dual existe por un hallazgo concreto**: el límite de tasa de Resend es por equipo y se
  comparte entre todos los tenants ([ADR-015](/adr/adr-015-dual-rail-sending)). El envío masivo de un
  tenant puede dejar sin OTP a todos los demás. Es el riesgo operativo más grande de la suite.
* **La cascada de canales es una función pura** sobre cuatro niveles más las compuertas del
  destinatario. Si se implementa con efectos de lado, deja de ser testeable y de ser explicable.
* **`send` y `send_status_history` están designadas para partición mensual** y son de alto volumen.
* **Pedir a Resend el aumento de límite es trabajo previo a G1**, no posterior.
