Kafka / микросервисы middle
Что такое Saga?
Ответ
Распределённые транзакции через цепочку локальных + компенсирующие действия. Choreography (события, децентрализованно) vs Orchestration (центральный оркестратор). Пример: оплата → списание → бронирование; при сбое шага выполняются компенсирующие действия, семантически отменяющие уже сделанное (зафиксированные локальные транзакции откатить нельзя).
Разбор: Saga разбивает распределённую транзакцию на цепочку локальных транзакций, каждая из которых публикует событие/команду для следующего шага, а при сбое выполняются компенсирующие действия, семантически отменяющие уже сделанное. Реализуется через хореографию (события) или оркестрацию (центральный координатор); это принципиально не 2PC и не блокировки/откаты БД — зафиксированные локальные транзакции откатить нельзя, их компенсируют отдельными действиями.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.