Guozhang Wang created KAFKA-3519: ------------------------------------ Summary: Refactor Transformer templates to return the same strong-typed value. Key: KAFKA-3519 URL: https://issues.apache.org/jira/browse/KAFKA-3519 Project: Kafka Issue Type: Bug Components: kafka streams Reporter: Guozhang Wang Assignee: Guozhang Wang Fix For: 0.10.0.0
Currently the Transformer interface's template is: {code} R transform(K key, V value); {code} While all its usage requires a key-value pair, and hence constructing the object as: {code} new Transformer<K, V, KeyValue<K1, V1>> {code} Since we expect Transformer to be only used in the Streams DSL, which is supposed to return another key-value pair streams, it's better to define its template just as {code} public interface Transformer<K, V, K1, V1> { KeyValue<K1, V1> transform(K key, V value); } {code} Also, we can allow punctuate() to also return a nullable KeyValue<K1, V1> pair, and let the implementation to forward to downstream processor only when the returned pair is not null. -- This message was sent by Atlassian JIRA (v6.3.4#6332)