
Николай Рудопас
Компания: Т-Банк
Взаимодействие сервисов через Kafka кажется простой задачей, пока не появляются реальные требования к надежности, порядку обработки сообщений, управлению нагрузкой и exactly-once гарантиями доставки.
Мы столкнулись с этим в полной мере, когда разрабатывали оркестратор бизнес-процессов, состоящий из множества небольших нод, каждая из которых должна обогащаться данными, принимать решения и в ряде случаев сохранять состояние.
Расскажем, как мы построили надежный и предсказуемый request/reply-механизм поверх Kafka, используя только штатную функциональность клиента и брокера — без избыточных инструментов, очередей на БД и сервисных прослоек.
Поделимся архитектурными решениями, эволюцией подходов и тем, что у нас хорошо сработало, а что — не очень.
Разберем разные реализации: от поштучного consume-produce и микробатчевой обработки до полного event-loop'а в стиле consume-transform-produce с использованием транзакций Kafka, параллельной обработки и динамических rate-лимитов.
Доклад будет интересен тем, кто строит высоконагруженные event-driven системы, ориентированные на надежность, и хочет лучше понять, как извлечь максимум из возможностей Kafka, не усложняя инфраструктуру.

Компания: Т-Банк