Почему связанные события могли прийти в неправильном порядке и как гарантировать их порядок обработки в Kafka?

Kafka гарантирует порядок записей внутри одной партиции, но приложение может нарушить порядок обработки параллельными задачами, повторами или отправкой связанных событий в разные партиции.

Короткий ответ

Что ответить на собеседовании

Kafka гарантирует порядок записей внутри одной партиции, но приложение может нарушить порядок обработки параллельными задачами, повторами или отправкой связанных событий в разные партиции.

Подробный разбор

Ответ с пояснениями

Kafka гарантирует порядок записей внутри одной партиции, но приложение может нарушить порядок обработки параллельными задачами, повторами или отправкой связанных событий в разные партиции.

Используйте общий ключ агрегата, последовательную обработку внутри его потока и номер версии события. При retry не позволяйте позднему событию молча обогнать неуспешное раннее, если бизнес-инвариант требует строгой последовательности.

Несколько producer-ов должны согласовать причинный порядок на уровне приложения; одна партиция фиксирует порядок поступления, а не угадывает его. Изменение числа партиций тоже требует внимания к распределению ключей. Offset подтверждают только после завершения непрерывно обработанной последовательности, не после произвольной самой поздней задачи.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее