Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Discussion thread: here [Change the link from the KIP proposal email archive to your own email thread]

JIRA: here [Change the link from KAFKA-1 to your own ticket]

Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).

Motivation

...

In Topology, we have methods like this:

Code Block
languagejava
themeConfluence
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)



It would probably be better UX to preset a builder interface like:


Code Block
languagejava
themeConfluence
public synchronized <KIn, VIn> Topology addGlobalStore(
  AddGlobalStoreParameters.fromStoreBuilder(storeBuiler)
                          .withSourceName(sourceName)
                          .withSourceTopic(topic)
                          .withTimestampExtractor(timestampExtractor)
                          .withKeyDeserializer(keyDeserializer)
                          .withValueDeserializer(valueDeserializer)
                          .withProcessorName(processorName)
                          .withStateUpdateSupplier(stateUpdateSupplier)
)


Public Interfaces

Briefly list any new interfaces that will be introduced as part of this proposal or any existing interfaces that will be removed or changed. The purpose of this section is to concisely call out the public contract that will come along with this feature.

...