You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "John Roesler (Jira)" <ji...@apache.org> on 2020/09/09 16:08:00 UTC
[jira] [Created] (KAFKA-10472) Consider migrating Topology methods
to the Builder pattern
John Roesler created KAFKA-10472:
------------------------------------
Summary: 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
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)