advanced
Kafka delivery semantics
Объясняйте at-most-once, at-least-once, effectively-once, transactions, idempotent producers и почему consumers still need safe side effects.
At-most-once: commit offset до process — возможна потеря messages. At-least-once: process затем commit — duplicates при failure. Effectively-once сочетает idempotent producer, transactions и idempotent consumer side effects. Kafka не dedupe business logic сама.
Компромисс: сильнее guarantees — больше latency, complexity и broker resources.
На интервью: semantics для payment processing; почему consumers всё ещё нужны inbox или idempotency keys.
Типовые ошибки: exactly-once без transactional boundaries; idempotent producer, но non-idempotent consumer DB writes.
Чеклист:
- Явно задайте semantics per topic.
- Broker settings с application idempotency.
- Тест failure между process и commit.
- Duplicate handling для operators в документации.