Меня зовут Андрей Серебрянский, и я увлечён Apache Kafka и гарантией доставки exactly once. В течение пяти лет я создавал платформы для потоковой обработки данных в финтехе, а теперь работаю над YDB Topics — частью СУБД Яндекса, которая заменяет Apache Kafka как брокера сообщений. Мы расширили поддержку Apache Kafka API, включая транзакции.
Однако наличие транзакций не является единственным условием для достижения exactly once. Важно понимать, как работают транзакции в брокерах сообщений. Эта статья полезна как новичкам, так и тем, кто хочет обновить свои знания.
Имеются три типа гарантий доставки:
1. At most once — данные могут теряться, но не дублироваться.
2. At least once — данные не теряются, но могут дублироваться.
3. Exactly once — данные не теряются и не дублируются.
YDB была разработана для обработки больших объёмов данных с гарантией ACID и exactly once. В отличие от Apache Kafka, YDB предотвращает дублирование при обработке сообщений. Для этого используется уникальный идентификатор транзакции. Таким образом, YDB Topics предлагает надёжные решения для обработки данных в бизнес-критичных сценариях.