системе отправителе есть сущность клиент содержащая адрес доставки. Эта система отправляет по два сообщения на каждого клиента в два отдельных топика в Кафку: в один топик только данные клиенты (без адреса доставки), а во второй топик адрес доставки с идентификатором клиента. Временная дельта между сообщениями по клиенту и его адресу в топиках может быть до 3-х часов.
Системе получателю из одного топика Кафки нужно получать сообщения содержащие информацию по клиенту и его адресу. Т.е. нужно сделать агрегацию данных (Aggregator EIP-паттерн).
Насколько понимаю, наиболее стандартным решением (или технологией) для решения подобной задачи в рамках кафочной экосистемы является Kafka Streams. Иной вариант, это использование некоторого хранилища для накаливания данных из двух топиков, выполнения агрегаций и отправки в результирующий топик, но это в каком-то смысле изобретение велосипеда.
Покритикуйте пожалуйста предложенные мной варианты
Может есть ещё какие-то варианты?
P.S. внести изменения на стороне системы отправителя нет возможности
Всем привет. Потоки из топиков кафки можно агрегировать другим решением, например, Flink. https://flink.apache.org/
Обсуждают сегодня