Что такое Saga паттерн и когда он нужен вместо распределённых транзакций?

Senior
313 просмотров
AFK Offer AI

Distributed transactions (2PC) сложны, блокирующие и ломают автономность микросервисов. Saga разбивает транзакцию на локальные транзакции в каждом сервисе, связанные событиями. При ошибке запускаются компенсирующие транзакции. Два варианта: Choreography (сервисы реагируют на события друг друга) и Orchestration (центральный сага-оркестратор управляет потоком). Оркестрация проще для отладки.

Следующий вопрос

Что такое AtomicInteger и зачем он нужен?