You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "Huynh Quang Thao (Jira)" <ji...@apache.org> on 2020/10/10 11:40:00 UTC

[jira] [Commented] (KAFKA-10472) Consider migrating Topology methods to the Builder pattern

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

Huynh Quang Thao commented on KAFKA-10472:
------------------------------------------

Does anyone work on this? Otherwise, I can start on this issue to familiar with contributing on the Kafka's project.

> Consider migrating Topology methods to the Builder pattern
> ----------------------------------------------------------
>
>                 Key: KAFKA-10472
>                 URL: https://issues.apache.org/jira/browse/KAFKA-10472
>             Project: Kafka
>          Issue Type: Improvement
>          Components: streams
>            Reporter: John Roesler
>            Assignee: Kalpitha Karamadi
>            Priority: Minor
>              Labels: need-kip
>
> During code review for KIP-478, I got this feedback from [~bbejeck] .
> In Topology, we have methods like this:
> {code:java}
> public synchronized <KIn, VIn> Topology addGlobalStore(
>   final StoreBuilder<?> storeBuilder,
>   final String sourceName,
>   final TimestampExtractor timestampExtractor,
>   final Deserializer<KIn> keyDeserializer,
>   final Deserializer<VIn> valueDeserializer,
>   final String topic,
>   final String processorName,
>   final ProcessorSupplier<KIn, VIn, Void, Void> stateUpdateSupplier){code}
> It would probably be better UX to preset a builder interface like:
> {code:java}
> public synchronized <KIn, VIn> Topology addGlobalStore(
>   AddGlobalStoreParameters.fromStoreBuilder(storeBuiler)
>                           .withSourceName(sourceName)
>                           .withSourceTopic(topic)
>                           .withTimestampExtractor(timestampExtractor)
>                           .withKeyDeserializer(keyDeserializer)
>                           .withValueDeserializer(valueDeserializer)
>                           .withProcessorName(processorName)
>                           .withStateUpdateSupplier(stateUpdateSupplier)
> ){code}
>  
> Note: new API design proposals should take into account the proposed grammar: https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Streams+DSL+Grammar



--
This message was sent by Atlassian Jira
(v8.3.4#803005)