advanced
Kafka ordering guarantees
Rely on order только within partition и проектируйте keys, retries, concurrency и reprocessing around that constraint.
Порядок гарантирован только внутри одной partition. Между partitions порядок не определён. Producers должны использовать один key для related events; consumers не должны parallelize processing одного key между threads, если порядок важен.
Компромисс: global ordering требует одну partition — лимит throughput; per-key ordering масштабируется с распределением keys.
На интервью: порядок login затем logout для одного user; почему retries могут reorder без idempotent sequence handling.
Типовые ошибки: разные keys для одной entity; consumer thread pool ломает partition order; reprocessing со старого offset перемешивается с новыми events.
Чеклист:
- Один key для causally related events.
- Один in-flight handler per partition или per key.
- Проектируйте out-of-order между services в любом случае.
- Тест reorder scenarios при retries.