Событие «заказ доставлен» обработано раньше, чем «заказ оплачен»
Сервис заказов публикует изменения статуса в топик Kafka с шестью партициями, сообщения отправляются без ключа. Потребитель обновляет статус в своей базе. Иногда заказ оказывается в статусе «оплачен» после того, как уже был «доставлен».
Что исправит проблему?
- Отправлять события с ключом order_id — порядок в Kafka держится в партиции
- Уменьшить число потребителей в группе до одного на весь топик
- Сортировать события по времени отправки на стороне потребителя
- Увеличить число партиций, чтобы события не ждали в очереди
