Class Joined<K,VLeft,VRight>

java.lang.Object
org.apache.kafka.streams.kstream.Joined<K,VLeft,VRight>
Type Parameters:
K - type of record key
VLeft - type of left record value
VRight - type of right record value

public class Joined<K,VLeft,VRight> extends Object
The Joined class represents optional params that can be passed to KStream#join(KTable,...) and KStream#leftJoin(KTable,...) operations.
  • Method Details

    • with

      public static <K, VLeft, VRight> Joined<K,VLeft,VRight> with(Serde<K> keySerde, Serde<VLeft> leftValueSerde, Serde<VRight> rightValueSerde)
      Create an instance of Joined with key, value, and otherValue Serde instances. null values are accepted and will be replaced by the default serdes as defined in config.
      Type Parameters:
      K - key type
      VLeft - left value type
      VRight - right value type
      Parameters:
      keySerde - the key serde to use. If null the default key serde from config will be used
      leftValueSerde - the value serde to use. If null the default value serde from config will be used
      rightValueSerde - the otherValue serde to use. If null the default value serde from config will be used
      Returns:
      new Joined instance with the provided serdes
    • with

      public static <K, VLeft, VRight> Joined<K,VLeft,VRight> with(Serde<K> keySerde, Serde<VLeft> leftValueSerde, Serde<VRight> rightValueSerde, String name)
      Create an instance of Joined with key, value, and otherValue Serde instances. null values are accepted and will be replaced by the default serdes as defined in config.
      Type Parameters:
      K - key type
      VLeft - left value type
      VRight - right value type
      Parameters:
      keySerde - the key serde to use. If null the default key serde from config will be used
      leftValueSerde - the left value serde to use. If null the default value serde from config will be used
      rightValueSerde - the right value serde to use. If null the default value serde from config will be used
      name - the name used as the base for naming components of the join including any repartition topics
      Returns:
      new Joined instance with the provided serdes
    • with

      public static <K, VLeft, VRight> Joined<K,VLeft,VRight> with(Serde<K> keySerde, Serde<VLeft> leftValueSerde, Serde<VRight> rightValueSerde, String name, Duration gracePeriod)
      Create an instance of Joined with key, value, and otherValue Serde instances. null values are accepted and will be replaced by the default serdes as defined in config.
      Type Parameters:
      K - key type
      VLeft - value value type
      VRight - right value type
      Parameters:
      keySerde - the key serde to use. If null the default key serde from config will be used
      leftValueSerde - the left value serde to use. If null the default value serde from config will be used
      rightValueSerde - the right value serde to use. If null the default value serde from config will be used
      name - the name used as the base for naming components of the join including any repartition topics
      gracePeriod - stream buffer time
      Returns:
      new Joined instance with the provided serdes
    • keySerde

      public static <K, VLeft, VRight> Joined<K,VLeft,VRight> keySerde(Serde<K> keySerde)
      Create an instance of Joined with a key Serde. null values are accepted and will be replaced by the default key serde as defined in config.
      Type Parameters:
      K - key type
      VLeft - value value type
      VRight - right value type
      Parameters:
      keySerde - the key serde to use. If null the default key serde from config will be used
      Returns:
      new Joined instance configured with the keySerde
    • valueSerde

      public static <K, VLeft, VRight> Joined<K,VLeft,VRight> valueSerde(Serde<VLeft> leftValueSerde)
      Create an instance of Joined with a value Serde. null values are accepted and will be replaced by the default value serde as defined in config.
      Type Parameters:
      K - key type
      VLeft - left value type
      VRight - right value type
      Parameters:
      leftValueSerde - the left value serde to use. If null the default value serde from config will be used
      Returns:
      new Joined instance configured with the valueSerde
    • otherValueSerde

      public static <K, VLeft, VRight> Joined<K,VLeft,VRight> otherValueSerde(Serde<VRight> rightValueSerde)
      Create an instance of Joined with aother value Serde. null values are accepted and will be replaced by the default value serde as defined in config.
      Type Parameters:
      K - key type
      VLeft - value type
      VRight - right value type
      Parameters:
      rightValueSerde - the right value serde to use. If null the default value serde from config will be used
      Returns:
      new Joined instance configured with the otherValueSerde
    • as

      public static <K, VLeft, VRight> Joined<K,VLeft,VRight> as(String name)
      Create an instance of Joined with base name for all components of the join, this may include any repartition topics created to complete the join.
      Type Parameters:
      K - key type
      VLeft - left value type
      VRight - right value type
      Parameters:
      name - the name used as the base for naming components of the join including any repartition topics
      Returns:
      new Joined instance configured with the name
    • withKeySerde

      public Joined<K,VLeft,VRight> withKeySerde(Serde<K> keySerde)
      Set the key Serde to be used. Null values are accepted and will be replaced by the default key serde as defined in config
      Parameters:
      keySerde - the key serde to use. If null the default key serde from config will be used
      Returns:
      new Joined instance configured with the name
    • withValueSerde

      public Joined<K,VLeft,VRight> withValueSerde(Serde<VLeft> leftValueSerde)
      Set the value Serde to be used. Null values are accepted and will be replaced by the default value serde as defined in config
      Parameters:
      leftValueSerde - the left value serde to use. If null the default value serde from config will be used
      Returns:
      new Joined instance configured with the valueSerde
    • withOtherValueSerde

      public Joined<K,VLeft,VRight> withOtherValueSerde(Serde<VRight> rightValueSerde)
      Set the otherValue Serde to be used. Null values are accepted and will be replaced by the default value serde as defined in config
      Parameters:
      rightValueSerde - the right value serde to use. If null the default value serde from config will be used
      Returns:
      new Joined instance configured with the valueSerde
    • withName

      public Joined<K,VLeft,VRight> withName(String name)
      Set the base name used for all components of the join, this may include any repartition topics created to complete the join.
      Parameters:
      name - the name used as the base for naming components of the join including any repartition topics
      Returns:
      new Joined instance configured with the name
    • withGracePeriod

      public Joined<K,VLeft,VRight> withGracePeriod(Duration gracePeriod)
      Set the grace period on the stream side of the join. Records will enter a buffer before being processed. Out of order records in the grace period will be processed in timestamp order. Late records, out of the grace period, will be executed right as they come in, if it is past the table history retention this could result in a null join. Long gaps in stream side arriving records will cause records to be delayed in processing.
      Parameters:
      gracePeriod - the duration of the grace period. Must be less than the joining table's history retention.
      Returns:
      new Joined instance configured with the gracePeriod
    • gracePeriod

      @Deprecated public Duration gracePeriod()
      Deprecated.
      Since 4.0 and should not be used any longer.
    • keySerde

      @Deprecated public Serde<K> keySerde()
      Deprecated.
      Since 4.0 and should not be used any longer.
    • valueSerde

      @Deprecated public Serde<VLeft> valueSerde()
      Deprecated.
      Since 4.0 and should not be used any longer.
    • otherValueSerde

      @Deprecated public Serde<VRight> otherValueSerde()
      Deprecated.
      Since 4.0 and should not be used any longer.