Выкройка Саги:
- Управляет длительными транзакциями, используя локальные транзакции и компенсации.
- Каждый шаг завершает или запускает откат в случае сбоя.
Оркестровка против хореографии:
- Оркестровка. Шагами управляет центральный контроллер.
- Хореография: Сервисы реагируют на события независимо.
Пример реализации:
await createOrder();
try {
await reserveInventory();
} catch (err) {
await cancelOrder();
}
Инструменты:
- Node.js + Kafka/RabbitMQ для саг, управляемых сообщениями.
- Workflow engines: Temporal, Camunda, or custom orchestrators.
Итог
Key takeaway for interview: What are sagas in microservice orchestration and how are they implemented in Node.js?