Встречается на собеседованиях • сегодня
Для чего нужен паттерн 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

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы