Thanks Tomer, that’s a good point indeed. you can definitely do this but since our producers are written in another language and frameworks (GoLang/node.js) and since we did not want them to have another responsibility we let our Kafka Stream handle the transformation.
Also bare in mind that in this small example there isn’t much logic inside the stream, but in our real-world scenario the Kafka stream has lot more to do : it has some more transformation related to our BL , it is using some hashing mechanism and it directs the data to several other topics hence splitting the stream.
Thanks for the feedback