Class ReaderBuilder<K,V>

java.lang.Object
com.bakdata.kafka.ReaderBuilder<K,V>
Type Parameters:
K - type of keys deserialized by the reader
V - type of values deserialized by the reader

public final class ReaderBuilder<K,V> extends Object
Read data from a Kafka cluster
  • Method Summary

    Modifier and Type
    Method
    Description
    org.apache.kafka.clients.consumer.Consumer<K,V>
    Create a new Consumer for a Kafka cluster
    List<org.apache.kafka.clients.consumer.ConsumerRecord<K,V>>
    from(String topic, Duration timeout)
    Read all data from a topic.
    with(String key, Object value)
    Add a consumer configuration
    <KN, VN> ReaderBuilder<KN,VN>
    withDeserializers(com.bakdata.kafka.Preconfigured<org.apache.kafka.common.serialization.Deserializer<KN>> keyDeserializer, com.bakdata.kafka.Preconfigured<org.apache.kafka.common.serialization.Deserializer<VN>> valueDeserializer)
    Provide custom deserializers for keys and values.
    <KN, VN> ReaderBuilder<KN,VN>
    withDeserializers(org.apache.kafka.common.serialization.Deserializer<KN> keyDeserializer, org.apache.kafka.common.serialization.Deserializer<VN> valueDeserializer)
    Provide custom deserializers for keys and values.
    <KN> ReaderBuilder<KN,V>
    withKeyDeserializer(com.bakdata.kafka.Preconfigured<org.apache.kafka.common.serialization.Deserializer<KN>> keyDeserializer)
    Provide custom deserializers for keys.
    <KN> ReaderBuilder<KN,V>
    withKeyDeserializer(org.apache.kafka.common.serialization.Deserializer<KN> keyDeserializer)
    Provide custom deserializers for keys.
    <VN> ReaderBuilder<K,VN>
    withValueDeserializer(com.bakdata.kafka.Preconfigured<org.apache.kafka.common.serialization.Deserializer<VN>> valueDeserializer)
    Provide custom deserializers for values.
    <VN> ReaderBuilder<K,VN>
    withValueDeserializer(org.apache.kafka.common.serialization.Deserializer<VN> valueDeserializer)
    Provide custom deserializers for values.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • with

      public ReaderBuilder<K,V> with(String key, Object value)
      Add a consumer configuration
      Parameters:
      key - configuration key
      value - configuration value
      Returns:
      ReaderBuilder with added configuration
    • from

      public List<org.apache.kafka.clients.consumer.ConsumerRecord<K,V>> from(String topic, Duration timeout)
      Read all data from a topic. This method is idempotent, meaning calling it multiple times will read the same data unless the data in the topic changes.
      Parameters:
      topic - topic to read from
      timeout - consumer poll timeout
      Returns:
      consumed records
    • createConsumer

      public org.apache.kafka.clients.consumer.Consumer<K,V> createConsumer()
      Create a new Consumer for a Kafka cluster
      Returns:
      Consumer
    • withDeserializers

      public <KN, VN> ReaderBuilder<KN,VN> withDeserializers(com.bakdata.kafka.Preconfigured<org.apache.kafka.common.serialization.Deserializer<KN>> keyDeserializer, com.bakdata.kafka.Preconfigured<org.apache.kafka.common.serialization.Deserializer<VN>> valueDeserializer)
      Provide custom deserializers for keys and values. Deserializers are configured automatically.
      Type Parameters:
      KN - type of keys
      VN - type of values
      Parameters:
      keyDeserializer - serializer for keys
      valueDeserializer - serializer for values
      Returns:
      ReaderBuilder with custom deserializers
    • withDeserializers

      public <KN, VN> ReaderBuilder<KN,VN> withDeserializers(org.apache.kafka.common.serialization.Deserializer<KN> keyDeserializer, org.apache.kafka.common.serialization.Deserializer<VN> valueDeserializer)
      Provide custom deserializers for keys and values. Deserializers are configured automatically.
      Type Parameters:
      KN - type of keys
      VN - type of values
      Parameters:
      keyDeserializer - serializer for keys
      valueDeserializer - serializer for values
      Returns:
      ReaderBuilder with custom deserializers
      See Also:
    • withKeyDeserializer

      public <KN> ReaderBuilder<KN,V> withKeyDeserializer(com.bakdata.kafka.Preconfigured<org.apache.kafka.common.serialization.Deserializer<KN>> keyDeserializer)
      Provide custom deserializers for keys. Deserializer is configured automatically.
      Type Parameters:
      KN - type of keys
      Parameters:
      keyDeserializer - serializer for keys
      Returns:
      ReaderBuilder with custom key deserializer
    • withKeyDeserializer

      public <KN> ReaderBuilder<KN,V> withKeyDeserializer(org.apache.kafka.common.serialization.Deserializer<KN> keyDeserializer)
      Provide custom deserializers for keys. Deserializer is configured automatically.
      Type Parameters:
      KN - type of keys
      Parameters:
      keyDeserializer - serializer for keys
      Returns:
      ReaderBuilder with custom key deserializer
      See Also:
    • withValueDeserializer

      public <VN> ReaderBuilder<K,VN> withValueDeserializer(com.bakdata.kafka.Preconfigured<org.apache.kafka.common.serialization.Deserializer<VN>> valueDeserializer)
      Provide custom deserializers for values. Deserializer is configured automatically.
      Type Parameters:
      VN - type of values
      Parameters:
      valueDeserializer - serializer for values
      Returns:
      ReaderBuilder with custom values deserializer
    • withValueDeserializer

      public <VN> ReaderBuilder<K,VN> withValueDeserializer(org.apache.kafka.common.serialization.Deserializer<VN> valueDeserializer)
      Provide custom deserializers for values. Deserializer is configured automatically.
      Type Parameters:
      VN - type of values
      Parameters:
      valueDeserializer - serializer for values
      Returns:
      ReaderBuilder with custom values deserializer
      See Also: