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

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

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

Ключевые моменты:

  • Каждый сервис выполняет свою часть транзакции и публикует событие.
  • Если что-то пошло не так, запускаются компенсирующие транзакции (откат).
  • Есть два варианта реализации: хореография (события) и оркестрация (центральный координатор).

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

java
// Оркестратор управляет процессом
class OrderSagaOrchestrator {
    void execute(Order order) {
        try {
            inventoryService.reserveItems(order);
            paymentService.processPayment(order);
            shippingService.scheduleDelivery(order);
        } catch (Exception e) {
            // Компенсирующие действия
            paymentService.refund(order);
            inventoryService.releaseItems(order);
        }
    }
}

Плюсы:

  • Подходит для распределённых систем
  • Обеспечивает согласованность данных

Минусы:

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

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

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

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