SAGA - один из первых шаблонов для реализации транзакционной логики в распределенных системах. Он появился раньше чем микросервисная архитектура, но особую популярность приобрел вместе с микросервисами.

Идея шаблона сводится к идии "целостность в конечном итоге", он состоит из цепочки нод, которые имеют свое состояние и работают по транзакционной модели ACID, каждая из нод либо выполняет транзакцию, либо инициирует цепочку отмены транзакции.

Взаимосвязь нод строится на базе событий, которые могут распространяться как синхронно, так и асинхронно.

SAGA шаблон

Варианты реализации

Существует восемь основных комбинаций этих свойств, которые дают разные варианты реализации SAGA:

Варианты реализацииСхема

Варианты реализацииСхема

Варианты реализацииСхема

Варианты реализацииСхема

Варианты реализацииСхема

Варианты реализацииСхема

Варианты реализацииСхема

Варианты реализацииСхема