YDB — это распределенная платформа для работы с данными с поддержкой OLTP-, OLAP- нагрузок и потоковыми очередями сообщений (топиками, аналогичными топикам в Apache Kafka). Apache Kafka — признанный лидер в сфере потоковых брокеров сообщений.
Транзакции в любой системе — это, с одной стороны, мощный инструмент упрощения кода пользователя и работы с системой в целом, а также достижения гарантий, которые до этого невозможно/сложно было получить. Например, Apache Kafka за счет транзакций позволяет достичь exactly once-гарантий. А с другой стороны, это зачастую достаточно сложная и интересная архитектура внутри системы. Транзакции позволяют сложность перенести из пользовательского кода в серверный.
Основной упор в докладе делается на рассмотрение архитектуры транзакций в YDB и Apache Kafka со сравнением плюсов и минусов этих подходов.
В докладе будут рассмотрены следующие аспекты:
* что такое топик, транзакционная запись в топик, транзакционное чтение из топика;
* модельная задача решардирования с гарантиями порядка и exactly once-обработки. Почему ее нельзя решить без транзакций в Apache Kafka. Как она решается без транзакций в YDB. Как она решается в обеих системах с использованием транзакций;
* архитектура транзакций в Apache Kafka;
* архитектура транзакций в топиках YDB;
* сравнение производительности транзакций в Apache Kafka и YDB.