15. Расскажите про паттерн Сага
UNKNOWNСага — это механизм, обеспечивающий согласованность данных в микросервисной архитектуре без применения распределенных транзакций.
Для каждой системной команды, которой надо обновлять данные в нескольких сервисах, создается некоторая сага. Сага представляет из себя некоторый «чек-лист», состоящий из последовательных локальных ACID-транзакций, каждая из которых обновляет данные в одном сервисе.
Для обработки сбоев применяется компенсирующая транзакция. Такие транзакции выполняются в случае сбоя на всех сервисах, на которых локальные транзакции выполнились успешно.
Типов транзакций в саге четыре:
- Компенсирующая — отменяет изменение, сделанное локальной транзакцией.
- Компенсируемая — это транзакция, которую необходимо компенсировать (отменить) в случае, если последующие транзакции завершаются неудачей.
- Поворотная — транзакция, опеределяющая успешность всей саги. Если она выполняется успешно, то сага гарантированно дойдет до конца.
- Повторяемая — идет после поворотной и гарантированно завершается успехом.
Предыдущий вопрос: 14. Расскажите про паттерн Цепочка обязанностей (Chain of Responsibility).
Следующий вопрос: 16. Паттерн Фасад Структурный паттерн проектирования
Все вопросы по теме: список
Все темы: список
Вопросы/замечания/предложения/нашли ошибку: напишите мне