Skip to content

Produced — Metadata for Producing Records

Produced<K, V> describes how to produce records in a topology in the High-Level KStream DSL for the following high-level operators:

Produced<K, V> is a NamedOperation.

Demo

import org.apache.kafka.common.serialization.Serdes
import org.apache.kafka.streams.kstream.Produced
val produced = Produced.`with`(Serdes.Long, Serdes.String)
scala> :type produced
org.apache.kafka.streams.kstream.Produced[Long,String]

Creating Instance

Produced takes the following to be created:

  • Serde<K> of keys (Apache Kafka)
  • Serde<V> of values (Apache Kafka)
  • StreamPartitioner<? super K, ? super V>
  • Processor Name

Produced is created using the factories.

Creating Consumed

as

Produced<K, V> as(
  String processorName)

with

Produced<K, V> with(
  Serde<K> keySerde,
  Serde<V> valueSerde)
Produced<K, V> with(
  Serde<K> keySerde,
  Serde<V> valueSerde,
  StreamPartitioner<? super K, ? super V> partitioner)

keySerde

Produced<K, V> keySerde(
  Serde<K> keySerde)

valueSerde

Produced<K, V> valueSerde(
  Serde<V> valueSerde)

streamPartitioner

Produced<K, V> streamPartitioner(
  StreamPartitioner<? super K, ? super V> partitioner)

Scala API

Scala API for Kafka Streams makes the optional Produced metadata an implicit parameter in the KStream API.

Moreover, ImplicitConversions object defines producedFromSerde implicit method that creates a Produced instance with the key and value Serde objects available in implicit scope.

And the last but not least, Scala API for Kafka Streams defines Produced object with with factory methods that use implicit key and value Serde objects.

Back to top