Distributed transactions (2PC) сложны, блокирующие и ломают автономность микросервисов. Saga разбивает транзакцию на локальные транзакции в каждом сервисе, связанные событиями. При ошибке запускаются компенсирующие транзакции. Два варианта: Choreography (сервисы реагируют на события друг друга) и Orchestration (центральный сага-оркестратор управляет потоком). Оркестрация проще для отладки.
Что такое Saga паттерн и когда он нужен вместо распределённых транзакций?
Senior
313 просмотровAFK Offer AI
Что такое AtomicInteger и зачем он нужен?