Встречается на собеседованиях • сегодня
Что такое паттерн SAGA
Паттерн SAGA — это подход к управлению распределёнными транзакциями в микросервисной архитектуре. Вместо одной долгой транзакции он разбивает процесс на последовательность локальных транзакций, каждая из которых компенсируется в случае ошибки.
Ключевые моменты:
- Каждый сервис выполняет свою часть работы и публикует событие.
- Если что-то идёт не так, запускаются компенсирующие транзакции (откаты).
- Есть два стиля: оркестрация (центральный координатор) и хореография (сервисы общаются через события).
Пример (хореография):
csharp
// OrderService
public async Task PlaceOrder(Order order)
{
await _db.SaveOrderAsync(order);
await _eventBus.PublishAsync(new OrderPlaced { OrderId = order.Id });
}
// PaymentService (подписан на OrderPlaced)
public async Task Handle(OrderPlaced @event)
{
try {
await _paymentService.Charge(@event.OrderId);
await _eventBus.PublishAsync(new PaymentProcessed { OrderId = @event.OrderId });
}
catch {
await _eventBus.PublishAsync(new PaymentFailed { OrderId = @event.OrderId });
}
}
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы