SAGA - один из первых шаблонов для реализации транзакционной логики в распределенных системах. Он появился раньше чем микросервисная архитектура, но особую популярность приобрел вместе с микросервисами.
Идея шаблона сводится к идии "целостность в конечном итоге", он состоит из цепочки нод, которые имеют свое состояние и работают по транзакционной модели ACID, каждая из нод либо выполняет транзакцию, либо инициирует цепочку отмены транзакции.
Взаимосвязь нод строится на базе событий, которые могут распространяться как синхронно, так и асинхронно.
Существует восемь основных комбинаций этих свойств, которые дают разные варианты реализации SAGA: