[ 
https://issues.apache.org/jira/browse/KAFKA-3729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16784075#comment-16784075
 ] 

Matthias J. Sax commented on KAFKA-3729:
----------------------------------------

The scope did no change. The "problem" is the following: As you might know, 
`Serializer` and `Deserializer` have a `configure(Map<String, ?> configs, 
boolean isKey)` method. Also `Serde` has this method and forwards the 
corresponding call to the wrapped instances.

Furthermore, there are two ways Kafka Streams can use Serdes: they are passed 
as parameters into operators directly or Kafka Streams creates instances 
internally based on `StreamsConfig`. For the later case, Kafka Streams calls 
configure() and passes in a `Map` base on StreamsConfig (cf. 
`StreamsConfig#defaultKeySerde()` and `StreamsConfig#defaultValueSerde`). 
However, for the former case the user needs to call configure() in their own 
code (if it's required to configure a Serde) before they are passed into an 
operator.

Thus, the idea of this ticket is, to lift this requirement. Kafka Streams 
should call configure() for all Serde objects that are passed into any 
operator, too, use the same `Map` it passed into `Serde` if it creates them 
itself.

The only thing I am wondering atm is, if `configure()` is supposed to be 
idempotent? If not, this would be a semantic change and might require a KIP to 
document the change. Or we might need a config to enable the configuration but 
don't do it on default to preserve backward compatibility. \cc [~guozhang]

>  Auto-configure non-default SerDes passed alongside the topology builder
> ------------------------------------------------------------------------
>
>                 Key: KAFKA-3729
>                 URL: https://issues.apache.org/jira/browse/KAFKA-3729
>             Project: Kafka
>          Issue Type: Improvement
>          Components: streams
>            Reporter: Fred Patton
>            Priority: Major
>              Labels: api, newbie
>
> From Guozhang Wang:
> "Only default serdes provided through configs are auto-configured today. But 
> we could auto-configure other serdes passed alongside the topology builder as 
> well."



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to