Вопрос проверяет архитектурное мышление и умение выбирать модель взаимодействия микросервисов.
Оркестрация использует центральный компонент, управляющий процессом.
Хореография строится на событиях без центрального координатора.
В оркестрации логика сосредоточена в одном месте.
В хореографии сервисы реагируют на события друг друга.
Выбор зависит от сложности бизнес-процесса.
Saga можно реализовать двумя архитектурными подходами, каждый из которых имеет свои особенности.
Оркестрация предполагает наличие координатора.
Характеристики:
центральный сервис управляет шагами
явно вызывает операции других сервисов
знает всю бизнес-логику процесса
Плюсы:
проще отслеживать поток
легче тестировать
Минусы:
сильная связанность
дополнительная точка отказа
Хореография основана на событиях.
Характеристики:
нет центрального управляющего
сервисы подписываются на события
логика распределена
Плюсы:
слабая связанность
высокая масштабируемость
Минусы:
сложнее отлаживать
труднее понять общий процесс
Рекомендации:
сложные бизнес-процессы → оркестрация
простые и независимые шаги → хореография
Оркестрация и хореография решают одну задачу Saga, но подходят для разных уровней сложности системы.