> ## 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-015 — Envío multicanal de carril dual

> Los límites de tasa del proveedor se comparten entre TODOS los tenants (Resend limita por equipo). El envío masivo de marketing de un tenant puede dejar sin correo transaccional a todos los demás.

Estado: Propuesto · Refs: DEC-E8, hallazgo de investigación (Resend: 10 rps por TEAM entre todas las API keys)

> Traducción. Autoritativo: [`../../adr/adr-015-dual-rail-sending.md`](/adr/adr-015-dual-rail-sending).

## Contexto

Los rate limits del proveedor se comparten entre TODOS los tenants (los límites de Resend aplican por
team). El blast de marketing de un tenant puede dejar sin correo transaccional (OTPs, invitaciones) a
todos los demás.

## Decisión

Dos carriles por canal: `notif.{canal}.transactional` (prioridad, SLO de latencia en segundos) y
`notif.{canal}.marketing` (throughput). Los workers de marketing ceden cuando la profundidad
transaccional supera el umbral. Token bucket global por proveedor más bucket de uso justo por tenant
(Upstash). Los blasts de email usan el endpoint batch de Resend (100 por request) contra NUESTRO
almacén de contactos; sincronizar contactos a Resend Audiences está PROHIBIDO. Backoff ante 429;
nunca descartar. Antes de G1: solicitar el aumento de rate limit a Resend; modelar el techo (10 rps ×
100 = 60k emails/min teóricos; las cuotas de plan son el tope real).

## Consecuencias

* Aislamiento entre tenants sobre proveedores compartidos; latencia transaccional protegida. − Dos
  colas por canal que operar; vale la pena.
