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)