Idempotent Consumer
Progettare il consumer affinché ripetere la stessa operazione produca lo stesso risultato osservabile e non side effect duplicati.
Il problema
Retry e redelivery fanno sì che una stessa richiesta o evento possa essere eseguito più volte.
Il pattern
Progettare il consumer affinché ripetere la stessa operazione produca lo stesso risultato osservabile e non side effect duplicati.
Come funziona
Si può usare una idempotency key, un vincolo univoco, una inbox o un controllo sullo stato del dominio. L'idempotenza deve includere anche chiamate esterne, quando possibile.
Esempio sanitario
Benefici
- Rende sicuri retry e redelivery
- Riduce errori duplicati
- Migliora resilienza
Trade-off
- Richiede identificatori e stato di deduplica
- Non tutti i side effect sono facilmente idempotenti
Quando usarlo
Per comandi remoti, webhook e consumer di messaggi.
Quando evitarlo
Quando si assume erroneamente exactly-once end-to-end senza supporto reale.
Pattern correlati
RIFERIMENTI
Fonti e riferimenti
Capsule Informatiche · Materiale progettuale
Capsule Informatiche · Materiale progettuale
