Меня зовут Андрей Серебрянский, и я увлечён Apache Kafka и гарантией доставки exactly once. Ранее я работал над платформами потоковой обработки данных в финтехе, а сейчас с командой разрабатываю YDB Topics — компонент YDB, заменяющий Apache Kafka. С недавних пор наш API поддерживает Kafka-транзакции, но этого недостаточно для достижения exactly once. Для предотвращения дублирования или потери сообщений важно понимать, как работают транзакции в сообщениях. Эта статья полезна для начинающих разработчиков, а также для тех, кто хочет понять детали работы с YDB Topics и другими брокерами сообщений. Гарантии доставки данных в Apache Kafka охватывают три уровня: at most once, at least once и exactly once. YDB изначально проектировалась для работы с большими объёмами данных и финансовыми транзакциями, обеспечивая ACID и exactly once. Однако при использовании пользовательского кода важно учитывать, как реализуется обработка данных. В этой статье рассматриваются популярные сценарии обработки, включая перемещение сообщений между топиками и загрузку данных через REST API. Обеспечение exactly once требует тщательного проектирования архитектуры и понимания особенностей работы с транзакциями.