Manual commit после успешной обработки даёт контроль at-least-once; auto commit по интервалу может закоммитить до обработки или потерять прогресс при сбое в неудобный момент.
Разбор
- Синхронный vs асинхронный commit — latency/throughput trade-off.
- Коммитьте батчами осознанно.
- При транзакциях Kafka offset входит в transaction.
- Идемпотентность обработчика обязательна при at-least-once.
Итог
Ручной commit после side effect — предсказуемее для надёжности.