Опишите разницу между стратегиями доставки сообщений at-least-once и exactly-once в брокерах, например Kafka. Какие требования это накладывает на ваш Python-бэкенд?

At-least-once допускает повторы и требует идемпотентной обработки. Exactly-once ограничено определённым контуром: транзакция Kafka не делает произвольную запись во внешнюю БД однократной.

Короткий ответ

Что ответить на собеседовании

At-least-once допускает повторы и требует идемпотентной обработки. Exactly-once ограничено определённым контуром: транзакция Kafka не делает произвольную запись во внешнюю БД однократной.

Подробный разбор

Ответ с пояснениями

At-least-once допускает повторы и требует идемпотентной обработки. Exactly-once ограничено определённым контуром: транзакция Kafka не делает произвольную запись во внешнюю БД однократной.

Для Kafka-процесса read-process-write можно согласовать offsets и записи в Kafka-транзакции при правильной конфигурации читателей. Для внешнего эффекта нужны дедупликация и транзакционная связь отметки с изменением либо поддержка идемпотентного ключа у получателя. В Python учитывают crash между эффектом и commit/ack, порядок и повтор после rebalance. Обещание «брокер исключит все дубли» без границ контракта некорректно.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее