Доклад о надёжной отправке событий в Apache Kafka с использованием CDC и паттерна Transactional Outbox.
Key Takeaways
- Гарантированная доставка сообщений в Kafka требует компромиссов между скоростью и надёжностью.
- Паттерн Transactional Outbox помогает решить проблему консистентности между базой данных и Kafka.
- Распределённые транзакции и паттерн Сага — основные подходы к решению проблем консистентности в распределённых системах.
- Правильная настройка продюсера и обработка исключений критичны для надёжной работы с Kafka.
- Понимание работы vacuum в Postgres важно для поддержания производительности базы данных.
Summary
- Обзор проблем доставки сообщений в распределённых системах и микросервисах.
- Объяснение уровней гарантии доставки сообщений в Apache Kafka: от максимальной производительности до exactly once.
- Рассмотрение особенностей работы с базой данных Postgres, включая процесс vacuum и его виды.
- Обсуждение типичных проблем при отправке событий в Kafka и вопросы консистентности данных.
- Описание решений для обеспечения консистентности: распределённые транзакции, паттерн Сага и архитектурные изменения.
- Введение в паттерн Transactional Outbox как надёжный способ отправки событий.
- Технические детали настройки продюсера Kafka и обработки транзакций.
- Практические советы по работе с конкуренцией и хранению смещений в Kafka.
- Обсуждение ограничений и нюансов реализации паттерна Transactional Outbox в реальных проектах.
- Рассмотрение вопросов поддержки базы данных и оптимизации работы с Kafka.
Chapters
- 00:00Введение и постановка проблемы доставки сообщений
- 03:50Уровни гарантии доставки в Apache Kafka
- 07:13Проблемы с сохранением данных и отправкой в Kafka
- 10:38Особенности работы с Postgres и vacuum
- 13:52Решения проблемы консистентности в распределённых системах
- 17:19Паттерн Transactional Outbox: концепция и применение
- 21:19Технические детали и настройка продюсера Kafka
- 24:08Практические советы и ограничения паттерна Transactional Outbox
- 25:30Заключение и ответы на вопросы








![МАТЕМАТИЧЕСКИЙ КЛУБ [переозвучка] — Transcript](https://i.ytimg.com/vi/ShORp6kItf4/maxresdefault.jpg)


