Это возможно любым из двух способов. Рассмотрите все возможные варианты, выберите вариант, который подходит вам лучше всего. Предположим, у вас есть исходные данные, исходные данные в csv или в некоторой БД (Oracle), и вы хотите выполнить ETL и загрузить его обратно в несколько различных хранилищ данных
1) Use kafka connect to produce your data to kafka topics.
Have a consumer which would consume off of these topics(could Kstreams, Ksql or Akka, Spark).
Produce back to a kafka topic for further use or some datastore, any sink basically
Преимущество этого заключается в том, что вы загружаете ваши данные с небольшим количеством кода или без кода, используя kafka connect, поскольку легко настроить исходные тексты kafka connect.
2) Write custom producers, do your transformations in producers before
writing to kafka topic or directly to a sink unless you want to reuse this produced data
for some further processing.
Read from kafka topic and do some further processing and write it back to persistent store.
Все сводится к выбору вашего проекта, к тому, сколько вам нужно от системы, насколько сложна ваша структура данных.