At-least-once допускает повтор обработки при сбое. Kafka exactly-once для потоковой обработки связывает запись результата и offsets транзакцией, но не охватывает автоматически внешнюю БД или HTTP.
Что такое at-least-once и exactly-once в Kafka?
At-least-once допускает повтор обработки при сбое. Kafka exactly-once для потоковой обработки связывает запись результата и offsets транзакцией, но не охватывает автоматически внешнюю БД или HTTP.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
At-least-once допускает повтор обработки при сбое. Kafka exactly-once для потоковой обработки связывает запись результата и offsets транзакцией, но не охватывает автоматически внешнюю БД или HTTP.
При at-least-once consumer сначала выполняет работу, затем подтверждает offset; сбой между этими шагами приводит к повтору. Для Kafka-to-Kafka можно использовать транзакционный producer и чтение read_committed, чтобы атомарно связать output и продвижение offsets. Идемпотентный producer сам по себе устраняет лишь определённые повторы записи producer. Внешний эффект всё равно требует собственной идемпотентности, outbox/inbox или согласованного механизма транзакций. Всегда называйте границу заявленной гарантии.
Источник: Документация Apache Kafka.