TGViewer
System Design World System Design World @system_design_world · 5.97K subscribers
Post #676 2.73K
💻 CDC через Transaction Log Tailing

✍️ В прошлом посте мы обсудили CDC и outbox pattern.

Напомню идею:
CDC (Change Data Capture) - механизм, который позволяет отследить изменения в базе данных и передать их в другую систему.

🎟 В нашем booking-примере:
➡️ Postgres - source of truth.
➡️ ElasticSearch - read model для быстрого поиска.
➡️ CDC - способ доставить изменения из Postgres в ElasticSearch.

🤎 Идея реализации CDC с помощью Transaction Log Tailing
База данных уже фиксирует все изменения в своём transaction log.
В Postgres такой лог называется Write-Ahead Log (WAL).

Когда мы меняем данные в таблице rooms, Postgres записывает это изменение в WAL.

⚠️ Например:
➡️ Обновили цену номера в таблице rooms.
➡️ Postgres записал изменение в WAL.

🫴 Далее мы хотим забирать такие изменения:
➡️ Специальный CDC-инструмент читает WAL.
➡️ Превращает изменение в событие.
➡️ Пересылает в ElasticSearch, Kafka или другую систему.
Получаем классическую схему в подобных System Design задачах:
Postgres -> WAL -> CDC Connector -> ElasticSearch

В этом подходе наше основное приложение не создаёт специальное событие(что оно делало в подходе с outbox).

🎖 Почему это удобно?
➡️ Нет изменений в коде приложения.
➡️ Можно отслеживать изменения автоматически.

Однако, не забываем и про минус такой реализации:
Transaction log хранит не бизнес-события, а технические изменения в базе.

У нас будет сухое описание:
➡️ не "RoomPriceChanged",
➡️ а "в таблице rooms у строки room_id = 42 изменилось поле price".

❓ Какие ещё заметили минусы?
И важный плюс по сравнению с outbox паттерном? 🐤

🔥 Итог:
Transaction log tailing - это способ реализации CDC, при котором мы автоматически читаем изменения напрямую из transaction log базы данных.
More from @system_design_world
  1. Sep 24, 2026🤖 AI-агент как System Design задача. Что скрыто под этим громким названием AI-агент? Сооб…
  2. Sep 22, 2026🛒 Мои отношения с Т-Банком. Part II. System Design 📕 Для подготовки к System Design Инте…
  3. Sep 21, 2026🛒 Мои отношения с Т-Банком. Part I 2019 год. Собеседование. Трушное в офисе. На северо-за…
  4. Sep 19, 2026AI System Design Интервью в Т-Банк. Первое в рунете. Эксклюзив для участников сообщества.…
  5. Sep 16, 2026🤷‍♂️ Что находится на серверной стороне AI? ⚡️ Огромную ИИ инфраструктуру нужно поддержив…
  6. Sep 14, 2026🔠🔠🔠 CAP в System Design Что это? ➡️Теорема Сложная? ➡️Нет Для чего полезно знать? ☑️Для…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →