advanced

Kafka offsets

Считайте offsets consumer progress, который commit после safe processing, intentionally designing replay и duplicate handling.

Offsets — per-partition позиции, которые отслеживают consumers — какие messages обработаны. Commits хранят progress в __consumer_offsets или external store. Commit after processing для at-least-once; commit before для at-most-once с риском потери при crash.

Компромисс: частые commits — больше overhead; редкие — больше duplicate work при restart.

На интервью: crash после process, до commit — что будет; exactly-once со scope transactions.

Типовые ошибки: auto-commit при long processing теряет messages при crash; manual commit не в sync с DB transaction.

Чеклист:

  • Commit timing согласован с idempotent processing.
  • Transactional consume-process-produce при необходимости.
  • Commit rate и rebalance offset issues.
  • Процедура replay с конкретного offset.