TGViewer
Системный аналитик с нуля | Альбина Гараева Системный аналитик с нуля | Альбина Гараева @garaeva_it · 1.09K subscribers
Post #1049 206
Итак, вместо транзакций используются несколько паттернов. Одни из популярных – Saga и Outbox.

Saga – цепочка компенсирующих действий

Идея простая – мы не пытаемся сделать всё атомарно, мы строим процесс как набор шагов.
Если шаг не удался, мы не откатываем всё в ноль, мы выполняем компенсирующие действия.

Например:
• Создали заказ
• Списали оплату
• Зарезервировали товар
❌ Не удалось отправить в складскую систему

Что делаем?

Не откатываем всё назад, а:
• отменяем резерв
• возвращаем деньги
• помечаем заказ как отменённый

Это и есть saga — управляемый процесс с компенсациями.

Важно! Компенсация не равно откат в классическом смысле, это отдельная бизнес-операция.

Outbox – гарантированная доставка событий

Теперь другая ситуация: система говорит «заказ создан – отправим событие»

Но между записью в базу и отправкой события в брокер есть риск расхождения.

Например, заказ в БД есть, а событие в очередь не ушло (упал сервис)

И вот тут появляется outbox-паттерн, вместо того чтобы сразу отправлять событие, мы:
1. пишем заказ в БД
2. пишем событие в таблицу outbox
3. отдельный процесс читает outbox и публикует события

То есть БД становится источником истины и для данных, и для событий.

Почему системному аналитику важно в этом разбираться?

Потому что аналитик в такой системе уже не просто описывает, что «нажал кнопку – вызвали API – получили ответ», а он начинает проектировать:
• где шаги процесса,
• где возможны сбои,
• что будет при частичном выполнении,
• как выглядит компенсация,
• какие данные являются источником истины,
• что можно переиграть, а что нельзя.

Если упростить всё до одной мысли:
• в монолите мы боремся за атомарность
• в распределённых системах за устойчивость процесса

И именно поэтому появляются event-driven, retry с ограничениями, saga,
outbox – на самом деле это просто попытка сделать нестабильный мир управляемым.
  • 🔥 6
  • ✍ 2
  • 👍 2
More from @garaeva_it
  1. Jun 21, 20265 продуктов, которые закроют ваши главные пробелы Друзья, собрала для вас всё в одном мест…
  2. Jun 19, 2026Дорогие студенты, благодарю вас за ваши прекрасные #отзывы Делюсь отзывом Алии, она работа…
  3. Jun 17, 2026Чтобы вы перестали гадать и начали проектировать логику взаимодействия осознанно, я открыв…
  4. Jun 15, 2026Надо ли системному аналитику разбираться в проектировании интерфейсов? Не раз слышала от с…
  5. Jun 13, 2026Вчера я писала о том, как незнание процессов превращает аналитика просто в создателя ТЗ, к…
  6. Jun 12, 2026«ТЗ готово, но задача не двигается»: почему аналитику критично понимать процессы разработк…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →