Це одне з найважливіших понять у брокерах повідомлень. Воно визначає, як повідомлення поводитимуться в ланцюжку producer → broker → consumer, а також описує їхню поведінку в разі збоїв системи.
Частіше всього, використовують три рівні гарантій доставки:
At most once - практично виключає дублікати, але повідомлення може загубитися при збоях в системі.
At least once - найпоширеніша гарантія доставки. Повідомлення може дублюватись, якщо брокер не отримав acknowledgement тому consumer повинен бути ідемпотентним (дивись допис вище up⬆️).
Exactly once - повідомлення буде оброблене рівно один раз. У теорії звучить добре, але на практиці реалізація потребує значних зусиль, тому використовується нечасто. Технічно це зазвичай досягається комбінацією
at least once і ідемпотентної обробки в задіяних вузлах.