Маршрутизируйте события одного пользователя в одну упорядоченную partition и обеспечьте последовательную обработку этого ключа. Масштабирование происходит по разным ключам, а не внутри одной последовательности.
Как обеспечить строгий порядок обработки событий для конкретного пользователя при горизонтальном масштабировании воркеров?
Маршрутизируйте события одного пользователя в одну упорядоченную partition и обеспечьте последовательную обработку этого ключа. Масштабирование происходит по разным ключам, а не внутри одной последовательности.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Маршрутизируйте события одного пользователя в одну упорядоченную partition и обеспечьте последовательную обработку этого ключа. Масштабирование происходит по разным ключам, а не внутри одной последовательности.
Присваивайте событиям версию или sequence number, чтобы обнаруживать пропуски, повторы и устаревшие операции. При retry последующие события не должны обходить неуспешное, если требуется строгий порядок. Во время переназначения worker нужен контроль владения, чтобы старый обработчик не записал результат позднее нового. Подтверждение offset связывают с сохранением результата. Если несколько независимых производителей создают события одного пользователя, порядок сначала нужно согласовать у источника, а не пытаться восстановить только по времени.