Получить доступ

Чем хореография саги отличается от оркестрации и когда что выбирают?

SeniorSaga и CDC
Ещё спрашивают так:
  • Хореография или оркестрация саги?
Коротко

Хореография — сервисы реагируют на события друг друга, центра нет. Оркестрация — координатор с машиной состояний отдаёт команды и ждёт ответов.

  • Хореография проще для 2–3 шагов, но процесс размазан и плохо виден
  • Оркестрация — явный процесс, проще мониторинг и компенсации, но координатор — отдельный сервис
  • Инструменты оркестрации: Temporal, Camunda, свой координатор

А ещё Сложные процессы с многими шагами — почти всегда оркестрация

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

Выбор определяется сложностью процесса. Пока шагов два-три и логика проста, хореография отлично работает: связность минимальна, новый подписчик добавляется без правки существующих. Как только шагов становится больше, появляется главная проблема: общий сценарий нигде не описан целиком, и на вопрос «на каком этапе сейчас заказ» ответить трудно, а отладка превращается в реконструкцию по логам. Оркестратор делает процесс явным, даёт понятные таймауты и повторы на каждом шаге и упрощает наблюдение — платой становится дополнительный компонент, который сам должен быть отказоустойчивым, и риск постепенно стянуть в него бизнес-логику участников. Компенсации нужны в обеих схемах.

Что хотят услышать

  • Определения обоих подходов.
  • Плюсы и минусы.
  • Критерии выбора.

Частые ошибки

  • Тянуть хореографию на длинный процесс с ветвлениями.
  • Превращать оркестратор в место, где живёт вся бизнес-логика.

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✓В хореографии сервисы реагируют на события друг друга без центра — низкая связность, но процесс размазан; в оркестрации координатор явно шлёт команды — процесс виден целиком ценой центрального компонента
  • ✗Хореография использует синхронные вызовы, оркестрация — асинхронные
  • ✗Оркестрация не требует компенсирующих действий
  • ✗Хореография применима только к двум сервисам

Что спросят дальше

  • Как реализуют таймауты шагов в каждой из схем?
  • Как понять по симптомам, что пора переходить к оркестрации?

Разбор темы

Связанные вопросы

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем