События одного заказа приходят потребителю в перепутанном порядке
Сервис публикует события жизненного цикла заказа (created, paid, shipped) в топик с 6 партициями. Ключ сообщения не задаётся. Потребитель периодически видит paid раньше created и падает на переходе статуса. Что исправит ситуацию?
- Увеличить число партиций топика — порядок восстановится за счёт более равномерного распределения сообщений
- Включить `acks=all` на продюсере — подтверждение от всех реплик выстроит события в порядке отправки
- Публиковать события с ключом `order_id` — все события одного заказа попадут в одну партицию, где порядок сохраняется
- Сортировать полученные события по временной метке в памяти потребителя перед применением перехода статуса
