События одного заказа приходят в перепутанном порядке
Продюсер отправляет события жизненного цикла заказа (CREATED, PAID, SHIPPED) в топик с 4 партициями, ключ сообщения не задаётся.
Потребитель периодически видит SHIPPED раньше PAID для одного и того же заказа. Как это объяснить?
- Kafka гарантирует порядок в пределах топика, значит порядок ломает многопоточная обработка на стороне потребителя
- Достаточно оставить в группе одного потребителя — тогда он прочитает все сообщения строго по времени отправки
- Нужно выставить acks=all: без подтверждения от всех реплик брокер меняет порядок записи сообщений
- Порядок гарантирован только внутри партиции: без ключа события одного заказа расходятся по разным партициям — нужен ключ orderId
