# ADR-0004: Cola inicial y transactional outbox

- Estado: Propuesto
- Fecha: 2026-07-12

## Contexto

Ingesta no debe esperar enriquecimiento o APIs externas. Tampoco debe existir dual-write inconsistente entre MySQL y la cola.

## Decisión propuesta

Persistir evento y outbox en una transacción MySQL. Un relay publica hacia Redis Streams; consumidores usan inbox/idempotencia, reintentos, backoff y dead-letter handling.

## Alternativas

- RabbitMQ/Kafka gestionado: mejor semántica/escala para ciertos escenarios, mayor operación inicial.
- Tabla MySQL como cola permanente: rechazada por contención y operación deficiente a escala.

## Consecuencias

Aceptación durable y recuperación clara. Redis Streams se reemplazará por broker dedicado si backlog, throughput o garantías lo exigen.

