15. Расскажите про паттерн Сага

15. Расскажите про паттерн Сага

UNKNOWN

Сага — это механизм, обеспечивающий согласованность данных в микросервисной архитектуре без применения распределенных транзакций.

Для каждой системной команды, которой надо обновлять данные в нескольких сервисах, создается некоторая сага. Сага представляет из себя некоторый «чек-лист», состоящий из последовательных локальных ACID-транзакций, каждая из которых обновляет данные в одном сервисе.

Для обработки сбоев применяется компенсирующая транзакция. Такие транзакции выполняются в случае сбоя на всех сервисах, на которых локальные транзакции выполнились успешно.

Типов транзакций в саге четыре:

  1. Компенсирующая — отменяет изменение, сделанное локальной транзакцией.
  2. Компенсируемая — это транзакция, которую необходимо компенсировать (отменить) в случае, если последующие транзакции завершаются неудачей.
  3. Поворотная — транзакция, опеределяющая успешность всей саги. Если она выполняется успешно, то сага гарантированно дойдет до конца.
  4. Повторяемая — идет после поворотной и гарантированно завершается успехом.

Предыдущий вопрос: 14. Расскажите про паттерн Цепочка обязанностей (Chain of Responsibility).

Следующий вопрос: 16. Паттерн Фасад Структурный паттерн проектирования

Все вопросы по теме: список

Все темы: список

Вопросы/замечания/предложения/нашли ошибку: напишите мне

Report Page