# Idempotencia, reintentos y orden de entrega

**Envío:** mandá siempre un `Idempotency-Key` en POST /v1/messages. **La generás vos**, no te la damos nosotros: un UUID v4 nuevo por cada mensaje que querés mandar (no por cada intento HTTP — la gracia es justamente repetir la misma cuando reintentás). Un reintento con la misma key devuelve el mismo registro (200) en vez de duplicar. La fuente de verdad es MariaDB (persistimos antes de encolar), así que un 202 nunca se pierde aunque Redis se caiga.

**Entrega (webhooks):** reintentos con backoff **1m → 5m → 30m → 2h → 6h** (5 intentos). El `X-Connect-Delivery-Id` es **estable entre reintentos** → deduplicá con él. Tras 20 fallos seguidos el endpoint se **auto-desactiva** (alerta critical) y lo reactivás desde el panel.

**Orden:** NO se garantiza el orden de entrega (reintentos + concurrencia). Ordená vos por `createdAt` (ISO-8601 Z) + `sequence` (monotónico por conexión; 0 cuando `connection` es null).

## Notas

- Tu endpoint tiene que ser **idempotente**: la misma entrega puede llegar más de una vez.
