События заявки в Kafka обработались не в том порядке
По заявке публикуются три события: created, scored, approved. В логах потребителя видно, что approved обработано раньше scored, и заявка ушла в неверный статус.
Топик состоит из трёх партиций, ключ у сообщений не задаётся.
В чём причина?
- Kafka гарантирует порядок сообщений в топике, значит это дефект самого брокера
- Порядок определяется временем отправки продюсером, нужно синхронизировать часы сервисов
- Порядок сохраняется только внутри партиции, а без ключа события заявки разъехались по разным партициям
- Нужно оставить в группе ровно одного потребителя: он читает все партиции сразу, поэтому сообщения будут обработаны строго в порядке отправки
