Abstract:
Метою статті є дослідження способів управління транзакціями в мікросервісах та забезпечення узгодженості даних, виявлення переваг та недоліків застосування існуючих шаблонів проєктування. У статті обговорюється використання протоколу двофазної фіксації 2PC і шаблону проєктування Saga. 2PC – це надійний протокол узгодженості даних для мікросервісів. Але це форма синхронної взаємодії, в результаті якої служби зв’язуються під час виконання, що значно впливає на доступність додатку. Якщо висока доступність застосування є пріоритетною вимогою, то як основу для розробки краще вибрати шаблон проєктування Saga. Він вирішує проблему виконання транзакцій що охоплюють декілька сервісів. Для забезпечення узгодженості даних Saga використовується у поєднанні з патерном Event sourcing або Transactional Outbox. Використання шаблону саги на основі хореографії забезпечує вищу продуктивність сервісів порівняно з оркестрацією. Його краще використовувати для сценаріїв, у яких час відповіді критичний, кількість сервісів, що приймають участь у розподіленій транзакції, невелика. Шаблон на основі оркестрації повільніший за хореографію, але він є кращим вибором для обробки складних сценаріїв транзакцій.