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.