[ https://issues.apache.org/jira/browse/KAFKA-3543?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15236427#comment-15236427 ]
Greg Fodor commented on KAFKA-3543: ----------------------------------- Just something akin to a flatTransform where the output of the transformer is assumed to have a value of some kind of enumerable. Probably would be pretty convoluted since it would impact a lot of method signatures. I guess at a higher level, I wonder if there's any way to make your points on stateless vs non-stateless operators requiring Serdes more intuitive. It might back out to just docs. > Allow a variant of transform() which can emit multiple values > ------------------------------------------------------------- > > Key: KAFKA-3543 > URL: https://issues.apache.org/jira/browse/KAFKA-3543 > Project: Kafka > Issue Type: Improvement > Components: streams > Affects Versions: 0.10.0.0 > Reporter: Greg Fodor > Assignee: Guozhang Wang > > Right now it seems that if you want to apply an arbitrary stateful > transformation to a stream, you either have to use a TransformerSupplier or > ProcessorSupplier sent to transform() or process(). The custom processor will > allow you to emit multiple new values, but the process() method currently > terminates that branch of the topology so you can't apply additional data > flow. transform() lets you continue the data flow, but forces you to emit a > single value for every input value. > (It actually doesn't quite force you to do this, since you can hold onto the > ProcessorContext and emit multiple, but that's probably not the ideal way to > do it :)) > It seems desirable to somehow allow a transformation that emits multiple > values per input value. I'm not sure of the best way to factor this inside of > the current TransformerSupplier/Transformer architecture in a way that is > clean and efficient -- currently I'm doing the workaround above of just > calling forward() myself on the context and actually emitting dummy values > which are filtered out downstream. -- This message was sent by Atlassian JIRA (v6.3.4#6332)