Встречается на собеседованиях • сегодня
Какой опыт с паттерном Saga
Паттерн Saga помогает управлять распределенными транзакциями в микросервисной архитектуре, разбивая их на последовательность локальных транзакций с компенсирующими действиями при ошибках.
Пример:
java
// Оркестрация Saga через класс-координатор
public class OrderSaga {
public void execute(Order order) {
try {
inventoryService.reserveItems(order); // Шаг 1
paymentService.processPayment(order); // Шаг 2
shippingService.shipOrder(order); // Шаг 3
} catch (Exception e) {
// Компенсирующие действия
paymentService.refund(order);
inventoryService.releaseItems(order);
}
}
}Нюансы:
- Оркестрация vs Хореография: Оркестрация (централизованный координатор) проще для контроля, хореография (события) — для масштабирования.
- Идемпотентность: Компенсирующие действия должны быть идемпотентными (повторный вызов не меняет результат).
- Сложность отладки: Требует четкого логгирования всех шагов.
Используется в системах с высокой согласованностью, например, e-commerce (оформление заказов).

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