SYSTEM ATLASЗагрузка материала

Saga Pattern

Saga Pattern

Длинная транзакция разбивается на локальные шаги с компенсациями.

Простыми словами

Например, аналитический конвейер забирает изменения из основной базы и должен не потерять и не продублировать данные. Поэтому заранее определяют правила чтения, записи и восстановления - иначе параллельные операции могут оставить данные в состоянии, которого бизнес не ожидал.

Механизм действия

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

Пример в работе

Нерабочий подход

Решение принимают без учета механизма «Saga Pattern», оценивая только ближайший эффект.

Системный подход

Перед изменением проверяют, как «Saga Pattern» влияет на ограничения, стимулы, зависимости и вторичные последствия.

Ограничения

«Saga Pattern» объясняет только часть происходящего в области «Базы данных и данные». Сам принцип не говорит, насколько сильным будет эффект в вашем случае, и не заменяет измерения. При другом масштабе, среде или временном горизонте результат может отличаться.

Источник

Hector Garcia-Molina; Kenneth Salem, “Sagas”, 1987.

Первоисточник