Оркестрация — это паттерн управления взаимодействием сервисов, при котором один центральный компонент (оркестратор) координирует все вызовы и определяет порядок действий.
👉 Принцип работы:
1. Клиент отправляет запрос оркестратору
2. Оркестратор вызывает Сервис 1, ждёт ответа
3. Оркестратор передаёт результат работы Сервиса 1 в Сервис 2, ждёт ответа
4. Оркестратор передаёт результат работы Сервиса 2 в Сервис 3, ждёт ответа
5. Оркестратор собирает итоговый ответ и возвращает клиенту (на картинке к посту - это API Gateway).
Сервисы не знают друг о друге.
Они знают только Оркестратора.
Если вдруг в процессе вызова одного из них происходит ошибка, то Оркестратор может запустить компенсационные действия - отмену всех предыдущих шагов, которые уже могли быть выполнены.
👉 Когда применяется:
• Когда важен строгий порядок вызова сервисов
• Когда нужна централизованная обработка ошибок и компенсирующие транзакции
• Когда бизнес-процесс сложный и его надо видеть целиком — оркестратор позволяет централизированно следить за логикой выполнения сложного алгоритма
👉 Паттерны проектирования микросервисов, где есть оркестратор:
✅ Saga (оркестрация)
Длинная транзакция разбивается на шаги.
Каждый шаг выполняет отдельный микросервис.
Оркестратор вызывает каждый сервис по очереди.
Если шаг падает — оркестратор запускает компенсирующие транзакции в обратном порядке.
Пример для Интернет-магазина:
Заказ оформлен → списать деньги → зарезервировать товар → передать в доставку.
❌ Если доставка недоступна — вернуть резерв → вернуть деньги
✅ Process Manager
Расширенный вариант Saga.
Оркестратор хранит состояние процесса и может обрабатывать более сложные ветвления — не только линейную цепочку, но и условия, параллельные ветки, таймауты.
👉 Инструменты:
▫️ Camunda — BPM-движок, оркестрация на основе BPMN-схем, есть визуальный редактор
▫️ Apache Camel — интеграционный фреймворк, классика для оркестрации в enterprise
▫️ Temporal — современный инструмент для оркестрации распределённых workflow,
▫️ AWS Step Functions — облачная оркестрация от Amazon, описание через состояния
▫️ и другие.
👉 Плюсы и минусы:
✅ Логика процесса видна в одном месте — легко отлаживать и менять
✅ Централизованная обработка ошибок
✅ Проще трассировать и мониторить
🚩 Оркестратор становится точкой отказа
🚩 Все сервисы завязаны на оркестратора — если он меняется, затрагиваются все
🚩 При большом количестве процессов оркестратор превращается в «умный монолит»
Полезные материалы:
🔗 Camunda и BPMN в микросервисах: успешный кейс для оркестрации процессов техподдержки
По сути оркестрация — это про централизованный контроль и предсказуемость
Когда бизнес-процесс критичный, порядок важен и ошибки нужно обрабатывать явно — оркестрация выигрывает у подхода с хореографией.
#АрхитектураGA
📱 Tg | 💙 ВК | 💬 Max
