Как Kafka реализует exactly-once и какие у этого подхода ограничения?

Kafka связывает транзакционные записи и offsets потребителя, а read_committed скрывает незавершённые и отменённые транзакции. Это даёт exactly-once для согласованной обработки внутри Kafka.

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

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

Kafka связывает транзакционные записи и offsets потребителя, а read_committed скрывает незавершённые и отменённые транзакции. Это даёт exactly-once для согласованной обработки внутри Kafka.

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

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

Kafka связывает транзакционные записи и offsets потребителя, а read_committed скрывает незавершённые и отменённые транзакции. Это даёт exactly-once для согласованной обработки внутри Kafka.

Идемпотентный producer подавляет определённые повторы отправки, но один этот режим недостаточен для всего pipeline. Consume–process–produce фиксирует результаты и offsets в общей Kafka-транзакции. Запись во внешнюю БД, отправка письма или HTTP-вызов автоматически в неё не входят: нужны собственная идемпотентность и согласование. Транзакции также добавляют задержки и требуют корректной обработки fencing и abort.

Источник: Документация Apache Kafka.

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

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

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

Подробнее