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

Для чего нужен паттерн Saga

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

Пример:

java
// Оркестрируемая Saga
public class OrderSaga {
    public void execute() {
        try {
            inventoryService.reserveItems();
            paymentService.processPayment();
            shippingService.shipOrder();
        } catch (Exception e) {
            // Компенсирующие транзакции
            paymentService.refundPayment();
            inventoryService.releaseItems();
        }
    }
}

Ключевые особенности:

  • Нет единой блокировки ресурсов
  • Подходит для долгих бизнес-процессов
  • Два стиля реализации: оркестрируемый и хореографический
  • Обеспечивает eventual consistency вместо strong consistency
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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