Доклад

Кровь, пот и Kafka. Request/reply не больно (почти)

  • На русском языке

Взаимодействие сервисов через Kafka кажется простой задачей, пока не появляются реальные требования к надежности, порядку обработки сообщений, управлению нагрузкой и exactly-once гарантиями доставки.

Мы столкнулись с этим в полной мере, когда разрабатывали оркестратор бизнес-процессов, состоящий из множества небольших нод, каждая из которых должна обогащаться данными, принимать решения и в ряде случаев сохранять состояние.

Расскажем, как мы построили надежный и предсказуемый request/reply-механизм поверх Kafka, используя только штатную функциональность клиента и брокера — без избыточных инструментов, очередей на БД и сервисных прослоек.

Поделимся архитектурными решениями, эволюцией подходов и тем, что у нас хорошо сработало, а что — не очень.

Разберем разные реализации: от поштучного consume-produce и микробатчевой обработки до полного event-loop'а в стиле consume-transform-produce с использованием транзакций Kafka, параллельной обработки и динамических rate-лимитов.

Доклад будет интересен тем, кто строит высоконагруженные event-driven системы, ориентированные на надежность, и хочет лучше понять, как извлечь максимум из возможностей Kafka, не усложняя инфраструктуру.

Спикеры

Доклады