⚙️ Паттерн Saga в микросервисах
Saga — это паттерн управления распределёнными транзакциями, который помогает сохранить целостность данных без монолитных блокировок и традиционных ACID-ограничений.
Вместо единой транзакции мы разбиваем процесс на последовательность локальных операций, каждая из которых выполняется в отдельном сервисе.
Два подхода к реализации
1️⃣ Оркестрация
• Управляется централизованным координатором.
• Каждый шаг транзакции выполняется только после получения команды от оркестратора.
• Минус: если оркестратор падает, всё останавливается.
• Плюс: понятный контроль за процессом, легче отлаживать.
2️⃣ Хореография
• Нет центрального контроллера, сервисы реагируют на события друг друга.
• Нет узкого места в виде оркестратора.
• Минус: сложнее управлять, можно запутаться в каскаде событий.
•Плюс: масштабируемость, нет единой точки отказа.
Оркестрация проще в управлении, но менее гибкая. Хореография масштабируется лучше, но сложнее в отладке.
➡️ Подробнее про паттерн в источнике
🐸Библиотека шарписта
Post #5639
5.67K

- 👍 17
- 🔥 3
- 👾 2
- ❤ 1