Продвинутый
В чем разница между Saga Choreography и Saga Orchestration?
Saga Choreography (Хореография):
Нет единого центра. Сервис А делает работу и кидает событие в Kafka. Сервис Б слушает его, делает свою работу и кидает новое событие. Если ошибка — Сервис Б кидает событие "Ошибка", и Сервис А сам делает откат.
Плюс: Нет единой точки отказа. Минус: Сложно отследить весь процесс.
Saga Orchestration (Оркестрация):
Есть отдельный сервис-Оркестратор (например, Camunda). Он командует: "Сервис А, сделай это. Сервис Б, сделай это". Если Сервис Б вернул ошибку, Оркестратор сам шлет команду Сервису А: "Сделай откат".
Плюс: Вся логика процесса видна в одном месте.