Kafka гарантирует порядок сообщений только внутри одной партиции: записи читаются в том же порядке, в котором были записаны в лог этой партиции. Между разными партициями одного топика общего порядка нет. Глобальный порядок возможен лишь при использовании единственной партиции, что ограничивает масштабируемость.
Модель Kafka основана на логах партиций: каждый топик разбивается на несколько партиций, и каждая партиция — это упорядоченный, только дописываемый лог с неизменяемыми сообщениями, пронумерованными по смещению (offset). Именно в пределах одной партиции Kafka строго сохраняет порядок: сообщения читаются потребителями в том же порядке, в котором были физически записаны продюсером.
Важно понимать ограничения этих гарантий:
Итого: Kafka даёт жёсткую гарантию порядка только на уровне отдельной партиции. На практике этого достаточно, если правильно выбрать ключи партиционирования и аккуратно спроектировать параллелизм потребителей; для строгого глобального порядка по всем сообщениям обычно жертвуют масштабируемостью и используют одну партицию.
Отметьте свой прогресс