Чем хореография саги отличается от оркестрации и когда что выбирают?
- Хореография или оркестрация саги?
Хореография — сервисы реагируют на события друг друга, центра нет. Оркестрация — координатор с машиной состояний отдаёт команды и ждёт ответов.
- Хореография проще для 2–3 шагов, но процесс размазан и плохо виден
- Оркестрация — явный процесс, проще мониторинг и компенсации, но координатор — отдельный сервис
- Инструменты оркестрации: Temporal, Camunda, свой координатор
А ещё Сложные процессы с многими шагами — почти всегда оркестрация
Подробно
Выбор определяется сложностью процесса. Пока шагов два-три и логика проста, хореография отлично работает: связность минимальна, новый подписчик добавляется без правки существующих. Как только шагов становится больше, появляется главная проблема: общий сценарий нигде не описан целиком, и на вопрос «на каком этапе сейчас заказ» ответить трудно, а отладка превращается в реконструкцию по логам. Оркестратор делает процесс явным, даёт понятные таймауты и повторы на каждом шаге и упрощает наблюдение — платой становится дополнительный компонент, который сам должен быть отказоустойчивым, и риск постепенно стянуть в него бизнес-логику участников. Компенсации нужны в обеих схемах.
Что хотят услышать
- Определения обоих подходов.
- Плюсы и минусы.
- Критерии выбора.
Частые ошибки
- Тянуть хореографию на длинный процесс с ветвлениями.
- Превращать оркестратор в место, где живёт вся бизнес-логика.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✗Хореография использует синхронные вызовы, а оркестрация — асинхронные сообщения через брокер
- ✗Оркестрация не требует компенсирующих действий
- ✗Хореография применима только к двум сервисам
- ✓Хореография — реакции на события без центра; оркестрация — координатор шлёт команды
Что спросят дальше
- Как реализуют таймауты шагов в каждой из схем?
- Как понять по симптомам, что пора переходить к оркестрации?
Разбор темы
- Saga, CDC и event-driven consistency
Почему 2PC не подходит, сага и компенсации, хореография vs оркестрация, CDC и outbox-relay, eventual consistency и границы.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.