Встречается на собеседованиях • сегодня
Что такое паттерн SAGA
SAGA — это паттерн для управления распределёнными транзакциями в микросервисной архитектуре. Он разбивает длинную транзакцию на последовательность локальных операций, каждая из которых выполняется в своём сервисе. Если одна операция завершается неудачей, SAGA запускает компенсирующие транзакции для отката предыдущих шагов.
Пример сценария:
- Сервис заказов создаёт заказ (шаг 1).
- Сервис оплаты резервирует средства (шаг 2).
- Если доставка не может быть выполнена (ошибка на шаге 3), SAGA запускает компенсацию: отменяет резерв и удаляет заказ.
Типы реализации:
- Хореография (без центрального координатора, сервисы общаются через события).
- Оркестрация (центральный координатор управляет процессом).
javascript
// Пример оркестрации (псевдокод)
class OrderSaga {
async execute() {
try {
await orderService.create();
await paymentService.reserve();
await deliveryService.schedule();
} catch (error) {
await paymentService.cancelReserve(); // Компенсация
await orderService.cancel();
}
}
}
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы