Вопрос проверяет, знаете ли вы, как поддерживать корректное состояние системы, когда часть операций уже выполнена, а часть — нет.
При частичных сбоях используют Saga и компенсационные действия. Состояние фиксируют поэтапно, чтобы понимать, что уже выполнено. Применяют идемпотентные операции и retry. Важно различать сильную и eventual consistency. Наблюдаемость помогает выявлять и корректировать рассинхронизации.
Консистентность при частичных сбоях — это способность системы оставаться в допустимом бизнес-состоянии, даже если часть операций завершилась неуспешно.
Saga-паттерн
Последовательность локальных транзакций.
Компенсации при сбоях.
Идемпотентные операции
Безопасные повторы.
Защита от дубликатов.
Явное хранение состояния
Статусы шагов.
Возможность восстановления процесса.
Eventual consistency
Временная рассинхронизация допустима.
Система сходится к корректному состоянию.
Транзакционные границы
Чёткое разделение локальных транзакций.
Минимизация области отката.
# state = pending -> completed -> compensated
Консистентность при сбоях достигается не “магией”, а явным управлением состоянием и компенсациями.