awesome-everything EN
↑ Обратно к восхождению

Распределённые системы

Саги: тест с выбором ответа

Суть Синтез всего юнита о сагах в формате выбора — почему ломается 2PC, чем compensating action отличается от rollback, choreography против orchestration и аномалии из-за потери изоляции.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на senior-высоте — в орбите
◷ 13 min

Шесть вопросов сквозь весь юнит. Каждый отражает проектное решение, которое ты принимаешь, когда одна транзакция не может охватить работу, — не определение для пересказа, а трейдофф, который надо взвесить, когда частичный отказ это норма.

Цель

Убедись, что связываешь воедино, почему 2PC не выживает между сервисами, почему compensation это не rollback, когда choreography бьёт orchestration и какие аномалии следуют из потери изоляции, — синтез, к которому вёл урок.

Викторина

Путь checkout проходит через шесть сервисов, один из них — сторонний платёжный шлюз. Почему завернуть их в один two-phase commit — ошибка?

Викторина

Шаг T2 списывает с карты; шаг T3 падает, и сага запускает C2. Что C2 делает на самом деле и почему различие важно?

Викторина

Сага поездки делает T1 бронь рейса, T2 бронь отеля, T3 аренда машины, затем списание карты, затем письмо-подтверждение. Почему сеньор ставит шаги именно так?

Викторина

Процесс заказа из 6 шагов охватывает 5 сервисов с ретраями, таймаутами и шагом ручного одобрения, который может ждать дни. Choreography или orchestration?

Викторина

Сага B читает заказ, который сага A закоммитила, но позже компенсирует, и действует на нём. Какая это аномалия и почему она вообще возможна?

Викторина

Две саги одновременно меняют один баланс счёта, и одна затирает изменение другой. Какая контрмера убирает этот lost update напрямую?

Итог

Сквозная линия: одна ACID-транзакция не может охватить сервисы, а лекарство 2PC — межсервисные блокировки плюс блокирующий координатор — хуже болезни. Сага отказывается от глобальной транзакции ради локальных коммитов плюс написанных руками компенсаций, которые суть новые прямые действия, а не rollback, поэтому необратимые шаги ставишь последними. Шаги связываешь choreography (децентрализованно, но размазано) или orchestration (одно durable место для чтения и продолжения), а за потерю изоляции платишь защитой на уровне приложения — semantic lock, коммутативные обновления, проверка версии — против dirty read и lost update.

Продолжить восхождение ↑Саги: тест на свободное воспроизведение
хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources3
expand
  1. 01
  2. 02
  3. 03

Trademarks belong to their respective owners. Editorial reference only.