Dostarczenie co najmniej raz (at-least-once delivery)
Gwarancja kolejki albo brokera, że każda wiadomość dotrze, być może więcej niż raz, więc konsumenci muszą radzić sobie z duplikatami.
Wiadomość znika dopiero, gdy konsument potwierdzi jej przetworzenie. Jeśli konsument padnie po wykonaniu pracy, a przed potwierdzeniem, wiadomość wraca i jest przetwarzana ponownie. Inne opcje to at-most-once (wyślij i zapomnij, wiadomości mogą zginąć) i exactly-once, które w praktyce oznacza at-least-once plus idempotentne przetwarzanie. Większość kolejek, webhooków i przekaźników outboxa dostarcza co najmniej raz.
Powiązane hasła
- Idempotentność (idempotency key): Operacja jest idempotentna, jeśli wykonana dwa razy daje ten sam efekt co raz. Ponowienia stają się bezpieczne.
- Dead letter queue (DLQ): Osobna kolejka, do której trafiają wiadomości po zbyt wielu nieudanych próbach przetworzenia, żeby nie przepadły ani nie wracały w nieskończoność.
- Dostarczenie dokładnie raz (exactly-once): Obietnica, że każda wiadomość zadziała raz; w praktyce dostarczenie co najmniej raz plus przetwarzanie, które ignoruje duplikaty.
- Wzorzec inbox (idempotentny konsument): Konsument zapisuje id każdej przetworzonej wiadomości w tej samej transakcji co własną zmianę i pomija każde id, które już widział.
