Class StreamsBuilderX

java.lang.Object
com.bakdata.kafka.streams.kstream.StreamsBuilderX

public final class StreamsBuilderX extends Object
Provides all runtime configurations and supports building a Topology of a StreamsApp
See Also:
  • Constructor Details

    • StreamsBuilderX

      public StreamsBuilderX(StreamsTopicConfig topics, Map<String,Object> kafkaProperties)
      Create a new StreamsBuilderX. A new internal StreamsBuilder is created automatically
      Parameters:
      topics - topic configuration
      kafkaProperties - kafka properties
    • StreamsBuilderX

      public StreamsBuilderX(@NonNull @NonNull org.apache.kafka.streams.StreamsBuilder streamsBuilder, @NonNull @NonNull StreamsTopicConfig topics, @NonNull @NonNull Map<String,Object> kafkaProperties)
  • Method Details

    • stream

      public <K, V> KStreamX<K,V> stream(String topic)
      See Also:
      • StreamsBuilder.stream(String)
    • stream

      public <K, V> KStreamX<K,V> stream(String topic, org.apache.kafka.streams.kstream.Consumed<K,V> consumed)
      See Also:
      • StreamsBuilder.stream(String, Consumed)
    • stream

      public <K, V> KStreamX<K,V> stream(String topic, ConsumedX<K,V> consumed)
      See Also:
      • StreamsBuilder.stream(String, Consumed)
    • stream

      public <K, V> KStreamX<K,V> stream(Collection<String> topics)
      See Also:
      • StreamsBuilder.stream(Collection)
    • stream

      public <K, V> KStreamX<K,V> stream(Collection<String> topics, org.apache.kafka.streams.kstream.Consumed<K,V> consumed)
      See Also:
      • StreamsBuilder.stream(Collection, Consumed)
    • stream

      public <K, V> KStreamX<K,V> stream(Collection<String> topics, ConsumedX<K,V> consumed)
      See Also:
      • StreamsBuilder.stream(Collection, Consumed)
    • stream

      public <K, V> KStreamX<K,V> stream(Pattern topicPattern)
      See Also:
      • StreamsBuilder.stream(Pattern)
    • stream

      public <K, V> KStreamX<K,V> stream(Pattern topicPattern, org.apache.kafka.streams.kstream.Consumed<K,V> consumed)
      See Also:
      • StreamsBuilder.stream(Pattern, Consumed)
    • stream

      public <K, V> KStreamX<K,V> stream(Pattern topicPattern, ConsumedX<K,V> consumed)
      See Also:
      • StreamsBuilder.stream(Pattern, Consumed)
    • streamInput

      public <K, V> KStreamX<K,V> streamInput(org.apache.kafka.streams.kstream.Consumed<K,V> consumed)
      Type Parameters:
      K - type of keys
      V - type of values
      Parameters:
      consumed - define optional parameters for streaming topics
      Returns:
      a KStreamX for all StreamsTopicConfig.getInputTopics()
      See Also:
      • StreamsBuilder.stream(Collection, Consumed)
    • streamInput

      public <K, V> KStreamX<K,V> streamInput(ConsumedX<K,V> consumed)
      Type Parameters:
      K - type of keys
      V - type of values
      Parameters:
      consumed - define optional parameters for streaming topics
      Returns:
      a KStreamX for all StreamsTopicConfig.getInputTopics()
      See Also:
      • StreamsBuilder.stream(Collection, Consumed)
    • streamInput

      public <K, V> KStreamX<K,V> streamInput()
      Type Parameters:
      K - type of keys
      V - type of values
      Returns:
      a KStreamX for all StreamsTopicConfig.getInputTopics()
      See Also:
      • StreamsBuilder.stream(Collection)
    • streamInput

      public <K, V> KStreamX<K,V> streamInput(String label, org.apache.kafka.streams.kstream.Consumed<K,V> consumed)
      Type Parameters:
      K - type of keys
      V - type of values
      Parameters:
      label - label of input topics
      consumed - define optional parameters for streaming topics
      Returns:
      a KStreamX for all StreamsTopicConfig.getInputTopics(String)
      See Also:
      • StreamsBuilder.stream(Collection, Consumed)
    • streamInput

      public <K, V> KStreamX<K,V> streamInput(String label, ConsumedX<K,V> consumed)
      Type Parameters:
      K - type of keys
      V - type of values
      Parameters:
      label - label of input topics
      consumed - define optional parameters for streaming topics
      Returns:
      a KStreamX for all StreamsTopicConfig.getInputTopics(String)
      See Also:
      • StreamsBuilder.stream(Collection, Consumed)
    • streamInput

      public <K, V> KStreamX<K,V> streamInput(String label)
      Type Parameters:
      K - type of keys
      V - type of values
      Parameters:
      label - label of input topics
      Returns:
      a KStreamX for all StreamsTopicConfig.getInputTopics(String)
      See Also:
      • StreamsBuilder.stream(Collection)
    • streamInputPattern

      public <K, V> KStreamX<K,V> streamInputPattern(org.apache.kafka.streams.kstream.Consumed<K,V> consumed)
      Create a KStreamX from all topics matching StreamsTopicConfig.getInputPattern()
      Type Parameters:
      K - type of keys
      V - type of values
      Parameters:
      consumed - define optional parameters for streaming topics
      Returns:
      a KStreamX for all topics matching StreamsTopicConfig.getInputPattern()
      See Also:
      • StreamsBuilder.stream(Pattern, Consumed)
    • streamInputPattern

      public <K, V> KStreamX<K,V> streamInputPattern(ConsumedX<K,V> consumed)
      Create a KStreamX from all topics matching StreamsTopicConfig.getInputPattern()
      Type Parameters:
      K - type of keys
      V - type of values
      Parameters:
      consumed - define optional parameters for streaming topics
      Returns:
      a KStreamX for all topics matching StreamsTopicConfig.getInputPattern()
      See Also:
      • StreamsBuilder.stream(Pattern, Consumed)
    • streamInputPattern

      public <K, V> KStreamX<K,V> streamInputPattern()
      Create a KStreamX from all topics matching StreamsTopicConfig.getInputPattern()
      Type Parameters:
      K - type of keys
      V - type of values
      Returns:
      a KStreamX for all topics matching StreamsTopicConfig.getInputPattern()
      See Also:
      • StreamsBuilder.stream(Pattern)
    • streamInputPattern

      public <K, V> KStreamX<K,V> streamInputPattern(String label, org.apache.kafka.streams.kstream.Consumed<K,V> consumed)
      Create a KStreamX from all topics matching StreamsTopicConfig.getInputPattern(String)
      Type Parameters:
      K - type of keys
      V - type of values
      Parameters:
      label - label of input pattern
      consumed - define optional parameters for streaming topics
      Returns:
      a KStreamX for all topics matching StreamsTopicConfig.getInputPattern(String)
      See Also:
      • StreamsBuilder.stream(Pattern, Consumed)
    • streamInputPattern

      public <K, V> KStreamX<K,V> streamInputPattern(String label, ConsumedX<K,V> consumed)
      Create a KStreamX from all topics matching StreamsTopicConfig.getInputPattern(String)
      Type Parameters:
      K - type of keys
      V - type of values
      Parameters:
      label - label of input pattern
      consumed - define optional parameters for streaming topics
      Returns:
      a KStreamX for all topics matching StreamsTopicConfig.getInputPattern(String)
      See Also:
      • StreamsBuilder.stream(Pattern, Consumed)
    • streamInputPattern

      public <K, V> KStreamX<K,V> streamInputPattern(String label)
      Create a KStreamX from all topics matching StreamsTopicConfig.getInputPattern(String)
      Type Parameters:
      K - type of keys
      V - type of values
      Parameters:
      label - label of input pattern
      Returns:
      a KStreamX for all topics matching StreamsTopicConfig.getInputPattern(String)
      See Also:
      • StreamsBuilder.stream(Pattern)
    • table

      public <K, V> KTableX<K,V> table(String topic)
      See Also:
      • StreamsBuilder.table(String)
    • table

      public <K, V> KTableX<K,V> table(String topic, org.apache.kafka.streams.kstream.Consumed<K,V> consumed)
      See Also:
      • StreamsBuilder.table(String, Consumed)
    • table

      public <K, V> KTableX<K,V> table(String topic, ConsumedX<K,V> consumed)
      See Also:
      • StreamsBuilder.table(String, Consumed)
    • table

      public <K, V> KTableX<K,V> table(String topic, org.apache.kafka.streams.kstream.Materialized<K,V,org.apache.kafka.streams.state.KeyValueStore<org.apache.kafka.common.utils.Bytes,byte[]>> materialized)
      See Also:
      • StreamsBuilder.table(String, Materialized)
    • table

      public <K, V> KTableX<K,V> table(String topic, MaterializedX<K,V,org.apache.kafka.streams.state.KeyValueStore<org.apache.kafka.common.utils.Bytes,byte[]>> materialized)
      See Also:
      • StreamsBuilder.table(String, Materialized)
    • table

      public <K, V> KTableX<K,V> table(String topic, org.apache.kafka.streams.kstream.Consumed<K,V> consumed, org.apache.kafka.streams.kstream.Materialized<K,V,org.apache.kafka.streams.state.KeyValueStore<org.apache.kafka.common.utils.Bytes,byte[]>> materialized)
      See Also:
      • StreamsBuilder.table(String, Consumed, Materialized)
    • table

      public <K, V> KTableX<K,V> table(String topic, ConsumedX<K,V> consumed, org.apache.kafka.streams.kstream.Materialized<K,V,org.apache.kafka.streams.state.KeyValueStore<org.apache.kafka.common.utils.Bytes,byte[]>> materialized)
      See Also:
      • StreamsBuilder.table(String, Consumed, Materialized)
    • globalTable

      public <K, V> org.apache.kafka.streams.kstream.GlobalKTable<K,V> globalTable(String topic)
      See Also:
      • StreamsBuilder.globalTable(String)
    • globalTable

      public <K, V> org.apache.kafka.streams.kstream.GlobalKTable<K,V> globalTable(String topic, org.apache.kafka.streams.kstream.Consumed<K,V> consumed)
      See Also:
      • StreamsBuilder.globalTable(String, Consumed)
    • globalTable

      public <K, V> org.apache.kafka.streams.kstream.GlobalKTable<K,V> globalTable(String topic, ConsumedX<K,V> consumed)
      See Also:
      • StreamsBuilder.globalTable(String, Consumed)
    • globalTable

      public <K, V> org.apache.kafka.streams.kstream.GlobalKTable<K,V> globalTable(String topic, org.apache.kafka.streams.kstream.Materialized<K,V,org.apache.kafka.streams.state.KeyValueStore<org.apache.kafka.common.utils.Bytes,byte[]>> materialized)
      See Also:
      • StreamsBuilder.globalTable(String, Materialized)
    • globalTable

      public <K, V> org.apache.kafka.streams.kstream.GlobalKTable<K,V> globalTable(String topic, MaterializedX<K,V,org.apache.kafka.streams.state.KeyValueStore<org.apache.kafka.common.utils.Bytes,byte[]>> materialized)
      See Also:
      • StreamsBuilder.globalTable(String, Materialized)
    • globalTable

      public <K, V> org.apache.kafka.streams.kstream.GlobalKTable<K,V> globalTable(String topic, org.apache.kafka.streams.kstream.Consumed<K,V> consumed, org.apache.kafka.streams.kstream.Materialized<K,V,org.apache.kafka.streams.state.KeyValueStore<org.apache.kafka.common.utils.Bytes,byte[]>> materialized)
      See Also:
      • StreamsBuilder.globalTable(String, Consumed, Materialized)
    • globalTable

      public <K, V> org.apache.kafka.streams.kstream.GlobalKTable<K,V> globalTable(String topic, ConsumedX<K,V> consumed, org.apache.kafka.streams.kstream.Materialized<K,V,org.apache.kafka.streams.state.KeyValueStore<org.apache.kafka.common.utils.Bytes,byte[]>> materialized)
      See Also:
      • StreamsBuilder.globalTable(String, Consumed, Materialized)
    • addStateStore

      public StreamsBuilderX addStateStore(org.apache.kafka.streams.state.StoreBuilder<?> builder)
      See Also:
      • StreamsBuilder.addStateStore(StoreBuilder)
    • addGlobalStore

      public <KIn, VIn> StreamsBuilderX addGlobalStore(org.apache.kafka.streams.state.StoreBuilder<?> storeBuilder, String topic, org.apache.kafka.streams.kstream.Consumed<KIn,VIn> consumed, org.apache.kafka.streams.processor.api.ProcessorSupplier<KIn,VIn,Void,Void> stateUpdateSupplier)
      See Also:
      • StreamsBuilder.addGlobalStore(StoreBuilder, String, Consumed, ProcessorSupplier)
    • addGlobalStore

      public <KIn, VIn> StreamsBuilderX addGlobalStore(org.apache.kafka.streams.state.StoreBuilder<?> storeBuilder, String topic, ConsumedX<KIn,VIn> consumed, org.apache.kafka.streams.processor.api.ProcessorSupplier<KIn,VIn,Void,Void> stateUpdateSupplier)
      See Also:
      • StreamsBuilder.addGlobalStore(StoreBuilder, String, Consumed, ProcessorSupplier)
    • createConfigurator

      public com.bakdata.kafka.Configurator createConfigurator()
      Create Configurator to configure Serde and Serializer using kafkaProperties.
      Returns:
      Configurator
    • createConfiguration

      public AppConfiguration<StreamsTopicConfig> createConfiguration()
      Create AppConfiguration used by this app
      Returns:
      AppConfiguration
    • getContext

      public StreamsContext getContext()
      Create a StreamsContext to wrap Kafka Streams interfaces
      Returns:
      StreamsContext
    • stores

      public StoresX stores()
      Create stores using application context to lazily configures Serdes
      Returns:
      StoresX
    • build

      public org.apache.kafka.streams.Topology build()
      Returns the Topology that represents the specified processing logic.
      Returns:
      the Topology that represents the specified processing logic
      See Also:
      • StreamsBuilder.build()
    • getStreamsBuilder

      @NonNull public @NonNull org.apache.kafka.streams.StreamsBuilder getStreamsBuilder()
    • getTopics

      @NonNull public @NonNull StreamsTopicConfig getTopics()
    • getKafkaProperties

      @NonNull public @NonNull Map<String,Object> getKafkaProperties()
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object