Hey Tim, I think the functionality you need is groupByKey() which avoids repartitioning, feel free to check it out here: https://docs.confluent.io/current/streams/developer-guide/dsl-api.html#aggregating. Recommend you to read the whole thing but feel free just to search `groupByKey`.
On Fri, Aug 9, 2019 at 7:14 AM Tim Ward <tim.w...@origamienergy.com> wrote: > I've got an input topic which is keyed by "parent ID". Each message > contains multiple items of data, each for a different "child ID". > > To process these items separately I flatMapValues() the stream to make a > new stream of the inner items of data, keyed by "child ID". > > Now, because I've changed the key, Kafka Streams thinks a repartition is > needed. But in fact it isn't, because all the inner items for a particular > "child ID" will be contained within messages keyed with the same "parent > ID". > > How do I tell Kafka Streams that there is no need to repartition in this > case, because all the data that should remain together in the same instance > of the application will do so without repartitioning? (I appreciate that > Streams can't know about the parent-child relationship unless I *do* tell > it in some way.) > > Tim Ward > > This email is from Origami Energy Limited. The contents of this email and > any attachment are confidential to the intended recipient(s). If you are > not an intended recipient: (i) do not use, disclose, distribute, copy or > publish this email or its contents; (ii) please contact Origami Energy > Limited immediately; and then (iii) delete this email. For more > information, our privacy policy is available here: > https://origamienergy.com/privacy-policy/. Origami Energy Limited > (company number 8619644) is a company registered in England with its > registered office at Ashcombe Court, Woolsack Way, Godalming, GU7 1LQ. >