Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Kafka: saga, distributed, transaction

Что такое паттерн Saga в микросервисной архитектуре?

Вопрос проверяет понимание распределённых транзакций и способов управления согласованностью данных в микросервисах.

Короткий ответ

Saga — это паттерн управления распределёнными транзакциями без использования глобальных блокировок.
Он разбивает одну большую операцию на последовательность локальных транзакций.
Если один из шагов завершается ошибкой, выполняются компенсирующие действия.
Такой подход позволяет сохранять согласованность данных в распределённой системе.

Длинный ответ

В микросервисной архитектуре невозможно использовать классические ACID-транзакции между сервисами. Saga решает эту проблему через цепочку согласованных действий.

Определение

Saga — это последовательность локальных транзакций, каждая из которых имеет компенсирующую операцию.

Каждый шаг:

  1. Выполняет изменение данных

  2. Публикует событие о результате

  3. Может быть отменён компенсирующим действием


Как работает Saga

Типичный сценарий:

  1. Создание заказа

  2. Резервирование оплаты

  3. Резервирование склада

Если шаг 3 падает:

  • выполняется отмена оплаты

  • заказ помечается как отменённый


Компенсирующие транзакции

Компенсация:

  • не откатывает состояние буквально

  • приводит систему в логически корректное состояние

Пример идеи:

def reserve_payment():
    ...

def cancel_payment():
    ...

Где применяется

Saga используется:

  • в e-commerce

  • в платёжных системах

  • в любых распределённых бизнес-процессах


Краткий вывод

Saga — основной способ управления согласованностью данных в микросервисах без глобальных транзакций.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    5

  • Сложность:

    7

Навыки

  • Kafka

    Kafka

Ключевые слова

#saga

#distributed

#transaction

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.