Если commit offset выполнен до надёжной обработки, обычное продолжение группы пропустит сообщение. При сохранённом логе можно переобработать нужный диапазон offsets, контролируя дубликаты.
Kafka: если offset уже сдвинут, а сервис, обрабатывающий сообщение, зафейлился и потерял его — что можно сделать?
Если commit offset выполнен до надёжной обработки, обычное продолжение группы пропустит сообщение. При сохранённом логе можно переобработать нужный диапазон offsets, контролируя дубликаты.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Если commit offset выполнен до надёжной обработки, обычное продолжение группы пропустит сообщение. При сохранённом логе можно переобработать нужный диапазон offsets, контролируя дубликаты.
Не сбрасывайте offsets рабочей группы вслепую: сначала установите потерянный диапазон и согласуйте остановку или отдельную replay-группу. Побочные эффекты должны быть идемпотентны, иначе повтор повредит данные. Если сообщение уже удалено по retention и резервной копии нет, Kafka не восстановит его магически. Для предотвращения фиксируйте прогресс после успешной обработки или используйте подходящую атомарную схему записи результата.