# Idempotenza, nuovi tentativi e ordine di consegna

**Invio:** manda sempre un `Idempotency-Key` in POST /v1/messages. **La generi tu**, non te la diamo noi: un UUID v4 nuovo per ogni messaggio che vuoi mandare (non per ogni tentativo HTTP — il bello è proprio ripetere la stessa quando riprovi). Un nuovo tentativo con la stessa key restituisce lo stesso record (200) invece di duplicarlo. La fonte di verità è MariaDB (salviamo prima di mettere in coda), quindi un 202 non si perde mai anche se Redis va giù.

**Consegna (webhook):** **5 tentativi in totale**: il primo e 4 nuovi tentativi a **1m → 5m → 30m → 2h**. Per deduplicare usa l'`id` della busta (**`evt_…`**): è lo stesso in ogni tentativo e in ogni endpoint. L'`X-Connect-Delivery-Id` identifica la consegna a UN endpoint, non l'evento. Dopo 20 errori di fila l'endpoint si **disattiva da solo** (avviso critical) e lo riattivi dal pannello.

**Ordine:** l'ordine di consegna NON è garantito (nuovi tentativi + concorrenza). Ordina tu per `createdAt` (ISO-8601 Z) + `sequence` (monotono per connessione; 0 quando `connection` è null).

## Note

- Il tuo endpoint deve essere **idempotente**: la stessa consegna può arrivare più di una volta.
