Встречается на собеседованиях • сегодня

Что такое Saga в построении микросервисов

Saga — это паттерн для управления распределёнными транзакциями в микросервисной архитектуре. Вместо одной ACID-транзакции (как в монолите) Saga разбивает процесс на последовательность локальных транзакций, каждая в своём сервисе. Если что-то идёт не так, Saga запускает компенсирующие транзакции (откаты).

Типы Sagas:

  1. Оркестрируемые — центральный координатор управляет потоком.
  2. Хореографические — сервисы общаются через события.

Пример (оркестрируемая Saga):

python
def place_order_saga():
    try:
        payment_service.charge()
        inventory_service.reserve_items()
        shipping_service.schedule()
    except Exception:
        # Компенсация
        payment_service.refund()
        inventory_service.release_items()
        shipping_service.cancel()

Плюсы:

  • Обходит ограничение распределённых транзакций
  • Сохраняет согласованность данных

Минусы:

  • Сложность отладки
  • Нужно проектировать компенсации
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы