В чём разница: At-least-once vs at-most-once vs exactly-once?

Ответ

В реальности чаще at-least-once + идемпотентность на стороне consumer'а. Kafka с transactional producer + read_committed даёт effectively-once.

Разбор: At-least-once допускает дубли, но не потери; at-most-once — наоборот; на практике берут at-least-once и обеспечивают идемпотентность на consumer'е, а Kafka даёт effectively-once через transactional producer + isolation.level=read_committed. Ловушки: путаница гарантий местами, ошибочное read_uncommitted вместо read_committed и миф о дедупликации «из коробки» — acks=all сам по себе exactly-once не даёт.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться