Eugene Kirpichov created BEAM-2221:
--------------------------------------

             Summary: Make KafkaIO coder specification less awkward
                 Key: BEAM-2221
                 URL: https://issues.apache.org/jira/browse/BEAM-2221
             Project: Beam
          Issue Type: Improvement
          Components: sdk-java-extensions
            Reporter: Eugene Kirpichov
            Assignee: Raghu Angadi


readWithCoders and writeWithCoders functions are awkward because they don't 
emphasize enough that coders are a poor choice for interpreting wire format.

The only reason to specify coders in KafkaIO is when coder inference from 
Deserializer fails. To emphasize that, let's change the API to be 
withKeyDeserializer(Deserializer) as the default choice and 
withKeyDeserializerAndCoder(Deserializer,Coder) if inference fails; likewise 
for value.

Remove functions using coders to interpret wire format from the API. A common 
case of that is Avro and Proto - for that, introduce special helper functions, 
I guess like with{Avro,Proto}{Key,Value}(...), which under the hood may be 
allowed to reuse Avro/ProtoCoder as a utility, but do not expose this fact.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to