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

Что такое паттерн SAGA

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

Типы SAGA:

  • Хореография (Choreography) — сервисы общаются через события, нет центрального координатора.
  • Оркестрация (Orchestration) — центральный координатор управляет потоком транзакций.

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

python
class OrderSaga:
    def execute(self):
        try:
            payment_service.charge()
            inventory_service.reserve()
            shipping_service.schedule()
        except Exception:
            # Компенсация
            payment_service.refund()
            inventory_service.release()
            shipping_service.cancel()

Плюсы:

  • Подходит для микросервисов.
  • Избегает долгих блокировок.

Минусы:

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

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

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

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