You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "Kalpitha Karamadi (Jira)" <ji...@apache.org> on 2020/09/13 16:46:00 UTC
[jira] [Assigned] (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:all-tabpanel ]
Kalpitha Karamadi reassigned KAFKA-10472:
-----------------------------------------
Assignee: Kalpitha Karamadi
> 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)