Ця тема доволі проста, але важлива для розуміння того, як відбувається взаємодія компонентів у розподілених системах.
Оркестрація
В цьому підході ми створюємо додатковий сервіс, який керує всім процесом і транзакціями. Головний плюс такого підходу - це те, що все знаходиться в одному місці, і працювати чи дебажити набагато простіше, ніж в хореографії.
Це, звісно, створює вузькі місця, і оркестратор може стати
god service, що суперечить основній концепції Microservices - Loose coupling.Хореографія
Тут в нас немає центрального сервісу, який керує всім процесом. Кожен сервіс розуміє, як йому відреагувати на конкретну подію та куди "відкотити" транзакцію у разі збою.
З плюсів такого підходу - це простота і менша звʼязаність сервісів. Але якщо логіка ускладнюється, це часто перетворюється на хаос.
В реальності найчастіше використовують гібридний підхід. Для звичної взаємодії між сервісами використовується хореографія, а для складних flow - оркестрація.
