Пишем Change Data Capture на Rust:
от теории к production-багам
Тезисы
Написать свой CDC (Change Data Capture) на Rust — это звучит просто, пока не встретишься с PostgreSQL WAL, битовыми смещениями и проблемами репликации, которые проявляются только в production.

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

Что будет в докладе:
  • Что такое CDC и почему это важно — почему синхронизация БД требует нетривиальных подходов
  • Как PostgreSQL хранит изменения — WAL, логические репликационные слоты и логический декодинг
  • Разработка CDC на Rust: на что обращать внимание — архитектурные решения и типичные ошибки
  • Декодинг и WAL: трудные детали — как правильно читать и интерпретировать поток данных
  • Debezium и альтернативы: почему свой инструмент — сравнение подходов и причины выбора
  • Production reality: две глобальные проблемы — как ошибка в работе с битами и неверное масштабирование развалили систему (2 msg/sec → потеря данных, 100K/sec → стабильность)
  • Бенчмарки и метрики в реальных условиях — что показали нагрузочные тесты
Это история о том, как строить high-load системы реального времени на Rust, когда готовые решения не подходят, и как учиться на своих ошибках.
Написать свой CDC (Change Data Capture) на Rust — это звучит просто, пока не встретишься с PostgreSQL WAL, битовыми смещениями и проблемами репликации, которые проявляются только в production.

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

Что будет в докладе:
  • Что такое CDC и почему это важно — почему синхронизация БД требует нетривиальных подходов
  • Как PostgreSQL хранит изменения — WAL, логические репликационные слоты и логический декодинг
  • Разработка CDC на Rust: на что обращать внимание — архитектурные решения и типичные ошибки
  • Декодинг и WAL: трудные детали — как правильно читать и интерпретировать поток данных
  • Debezium и альтернативы: почему свой инструмент — сравнение подходов и причины выбора
  • Production reality: две глобальные проблемы — как ошибка в работе с битами и неверное масштабирование развалили систему (2 msg/sec → потеря данных, 100K/sec → стабильность)
  • Бенчмарки и метрики в реальных условиях — что показали нагрузочные тесты
Это история о том, как строить high-load системы реального времени на Rust, когда готовые решения не подходят, и как учиться на своих ошибках.
Информация о спикере
Вячеслав Морозов
CTO, Мигрантекс
  • Вячеслав Морозов
    CTO, Мигрантекс
Все доклады трека