Получить доступ

Согласованность между сервисами

Основа с Middle

Transactional outbox, саги, CDC и идемпотентность — как не потерять данные без распределённых транзакций.

Что важно знать

  • Двойная запись: записали в базу и упали до отправки события — или наоборот. Распределённые транзакции (2PC) на практике почти не используют.
  • Outbox: событие пишется в таблицу в той же транзакции, отдельный процесс публикует его в брокер.
  • CDC: изменения читаются из журнала базы (Debezium) и превращаются в события.
  • Сага: цепочка локальных транзакций с компенсирующими действиями; хореография (события) или оркестрация (координатор).
  • Итоговая согласованность: данные сходятся со временем — интерфейс и бизнес должны это допускать.

Критерии освоения

Middle ≈ 8 ч

  • Объясняет проблему двойной записи и реализует transactional outbox

Практика. Реализовать outbox — запись заказа и события в одной транзакции и отдельный публикатор — и проверить отсутствие потерь при падениях.

Senior ≈ 8 ч

  • Проектирует сагу с компенсациями для бизнес-процесса из нескольких сервисов
  • Использует CDC (Debezium) для публикации изменений

Практика. Спроектировать сагу оформления заказа (резерв, оплата, доставка) с компенсациями и описать сценарии отказов.

Вопросы с собеседований

Разборы темы

← Вся карта «Backend-разработчик»

Закрытая бета

Знать тему — половина дела

На живом собеседовании sotto слышит вопрос интервьюера и показывает короткий ответ и план. Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем