Kafka / микросервисы middle
В чём разница: 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.