Состояние нельзя обновлять только по порядку прихода событий: поздно доставленное событие может быть устаревшим.
Что если сначала пришло событие Success/Paid/Done, а потом более старое событие Pending? Как это решать?
Состояние нельзя обновлять только по порядку прихода событий: поздно доставленное событие может быть устаревшим.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Состояние нельзя обновлять только по порядку прихода событий: поздно доставленное событие может быть устаревшим.
Сравнивайте версию события с сохранённой и проверяйте допустимость перехода статуса внутри транзакции. Если источник не даёт надёжной версии, сверяйте актуальное состояние через его API; время доставки не заменяет версию.