You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kafka.apache.org by gi...@apache.org on 2026/09/29 12:13:26 UTC
(kafka-site) branch asf-staging updated: Updated asf-staging from GHA workflow run 36565610989
This is an automated email from the ASF dual-hosted git repository.
github-actions[bot] pushed a commit to branch asf-staging
in repository https://gitbox.apache.org/repos/asf/kafka-site.git
The following commit(s) were added to refs/heads/asf-staging by this push:
new bf93a6a3da Updated asf-staging from GHA workflow run 36565610989
bf93a6a3da is described below
commit bf93a6a3daa63eeefcf8e448f68aa8fd9ee95e87
Author: github-actions[bot] <41...@users.noreply.github.com>
AuthorDate: Tue Sep 29 12:13:20 2026 +0000
Updated asf-staging from GHA workflow run 36565610989
Commit: https://github.com/apache/kafka-site/commit/aa5331bd90662a8bd38aa6afc1b3a8d7739e0123
GitHub Run: https://github.com/apache/kafka-site/actions/runs/36565610989
---
42/_print/index.html | 42 +++++++++++-----------
42/apis/_print/index.html | 12 +++----
42/apis/index.html | 14 ++++----
42/kafka-connect/_print/index.html | 2 +-
42/kafka-connect/user-guide/index.html | 6 ++--
42/operations/_print/index.html | 4 +--
42/operations/tiered-storage/index.html | 8 ++---
42/streams/_print/index.html | 24 ++++++-------
42/streams/developer-guide/_print/index.html | 18 +++++-----
42/streams/developer-guide/datatypes/index.html | 10 +++---
42/streams/developer-guide/dsl-api/index.html | 10 +++---
42/streams/developer-guide/index.xml | 2 +-
42/streams/developer-guide/testing/index.html | 12 +++----
.../developer-guide/write-streams-app/index.html | 14 ++++----
42/streams/quickstart/index.html | 10 +++---
42/streams/tutorial/index.html | 8 ++---
index.xml | 2 +-
sitemap.xml | 2 +-
tags/docs/index.xml | 2 +-
tags/kafka/index.xml | 2 +-
20 files changed, 102 insertions(+), 102 deletions(-)
diff --git a/42/_print/index.html b/42/_print/index.html
index aa4f75ba32..f9d9f0517a 100644
--- a/42/_print/index.html
+++ b/42/_print/index.html
@@ -87,32 +87,32 @@ and provide early feedback.</li></ul></li></ul><h2 id=upgrading-to-401>Upgrading
Kafka exposes all its functionality over a language-independent protocol which has clients available in many programming languages. However only the Java clients are maintained as part of the main Kafka project, the others are available as independent open source projects. A list of non-Java clients is available <a href=https://cwiki.apache.org/confluence/x/3gDVAQ target=_blank rel=noopener>here</a>.</li></ol><h1 id=producer-api>Producer API<a class=td-heading-self-link href=#producer-ap [...]
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
</code></pre><h1 id=consumer-api>Consumer API<a class=td-heading-self-link href=#consumer-api aria-label="Heading self-link"></a></h1><p>The Consumer API allows applications to read streams of data from topics in the Kafka cluster.</p><p>Examples of using the consumer are shown in the <a href=/42/javadoc/index.html?org/apache/kafka/clients/consumer/KafkaConsumer.html title="Kafka 4.2 Javadoc">javadocs</a>.</p><p>To use the consumer, add the following Maven dependency to your project:</p> [...]
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
</code></pre><h1 id=share-consumer-api>Share Consumer API<a class=td-heading-self-link href=#share-consumer-api aria-label="Heading self-link"></a></h1><p>The Share Consumer API enables applications in a share group to cooperatively consume and process data from Kafka topics.</p><p>Examples of using the share consumer are shown in the <a href=/42/javadoc/index.html?org/apache/kafka/clients/consumer/KafkaShareConsumer.html title="Kafka 4.2 Javadoc">javadocs</a>.</p><p>To use the share con [...]
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
</code></pre><h1 id=streams-api>Streams API<a class=td-heading-self-link href=#streams-api aria-label="Heading self-link"></a></h1><p>The <a href=/42/documentation/streams>Streams</a> API allows transforming streams of data from input topics to output topics.</p><p>Examples of using this library are shown in the <a href=/42/javadoc/index.html?org/apache/kafka/streams/KafkaStreams.html title="Kafka 4.2 Javadoc">javadocs</a>.</p><p>Additional documentation on using the Streams API is avail [...]
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
</code></pre><p>When using Scala you may optionally include the <code>kafka-streams-scala</code> library. Additional documentation on using the Kafka Streams DSL for Scala is available <a href=/42/documentation/streams/developer-guide/dsl-api.html#scala-dsl>in the developer guide</a>.</p><p>To use Kafka Streams DSL for Scala 2.13, add the following Maven dependency to your project:</p><pre><code><dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams-scala_2.13</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
</code></pre><h1 id=connect-api>Connect API<a class=td-heading-self-link href=#connect-api aria-label="Heading self-link"></a></h1><p>The Connect API allows implementing connectors that continually pull from some source data system into Kafka or push from Kafka into some sink data system.</p><p>Many users of Connect won’t need to use this API directly, though, they can use pre-built connectors without needing to write any code. Additional information on using Connect is available < [...]
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
</code></pre><p>For more information about the Admin APIs, see the <a href=/42/javadoc/index.html?org/apache/kafka/clients/admin/Admin.html title="Kafka 4.2 Javadoc">javadoc</a>.</p></div><div class=td-content style=page-break-before:always><h1 id=pg-c2f5f3687a5c28398be69eb8be75e44c>3 - Configuration</h1></div><div class=td-content><h1 id=pg-c76806d226033885496661abc498d8df>3.1 - Broker Configs</h1><div class=lead>Broker Configs</div><p>The essential configurations are the following:</p> [...]
</code></pre><p>To describe the current dynamic broker configs for broker id 0:</p><pre><code>$ bin/kafka-configs.sh --bootstrap-server localhost:9092 --entity-type brokers --entity-name 0 --describe
@@ -5760,7 +5760,7 @@ foo
}
>> exit
</code></pre><p>Note: <code>00000000000000000000-0000000000.checkpoint</code> does not contain cluster metadata. Use a valid snapshot file when examining metadata with the <code>kafka-metadata-shell.sh</code> tool.</p><h2 id=deploying-considerations>Deploying Considerations<a class=td-heading-self-link href=#deploying-considerations aria-label="Heading self-link"></a></h2><ul><li>Kafka server’s <code>process.roles</code> should be set to either <code>broker</code> or <code>controll [...]
-# ex: `git checkout 4.2.0`
+# ex: `git checkout 4.2.2`
$ ./gradlew clean :storage:testJar
</code></pre><p>After build successfully, there should be a <code>kafka-storage-x.x.x-test.jar</code> file under <code>storage/build/libs</code>. Next, setting configurations in the broker side to enable tiered storage feature.</p><pre><code># Sample KRaft broker server.properties listening on PLAINTEXT://:9092
remote.log.storage.system.enable=true
@@ -5772,7 +5772,7 @@ remote.log.metadata.manager.listener.name=PLAINTEXT
# This is the mandatory configuration for tiered storage.
# Here, we use the `LocalTieredStorage` built above.
remote.log.storage.manager.class.name=org.apache.kafka.server.log.remote.storage.LocalTieredStorage
-remote.log.storage.manager.class.path=/PATH/TO/kafka-storage-4.2.0-test.jar
+remote.log.storage.manager.class.path=/PATH/TO/kafka-storage-4.2.2-test.jar
# These 2 prefix are default values, but customizable
remote.log.storage.manager.impl.prefix=rsm.config.
@@ -6298,7 +6298,7 @@ security.inter.broker.protocol=SSL
</code></pre><p>The final bounce secures the cluster by closing the PLAINTEXT port.</p><pre><code>listeners=SSL://broker1:9092,SASL_SSL://broker1:9093
security.inter.broker.protocol=SSL
</code></pre></div><div class=td-content style=page-break-before:always><h1 id=pg-bb43290aadcd39b0a78474d8132616e1>8 - Kafka Connect</h1></div><div class=td-content><h1 id=pg-4b6a0d083ee3f684ad000e6dd6e5bebc>8.1 - Overview</h1><div class=lead>Overview</div><p>Kafka Connect is a tool for scalably and reliably streaming data between Apache Kafka and other systems. It makes it simple to quickly define <em>connectors</em> that move large collections of data into and out of Kafka. Kafka Conne [...]
-</code></pre><p>The first parameter is the configuration for the worker. This includes settings such as the Kafka connection parameters, serialization format, and how frequently to commit offsets. The provided example should work well with a local cluster running with the default configuration provided by <code>config/server.properties</code>. It will require tweaking to use with a different configuration or production deployment. All workers (both standalone and distributed) require a f [...]
+</code></pre><p>The first parameter is the configuration for the worker. This includes settings such as the Kafka connection parameters, serialization format, and how frequently to commit offsets. The provided example should work well with a local cluster running with the default configuration provided by <code>config/server.properties</code>. It will require tweaking to use with a different configuration or production deployment. All workers (both standalone and distributed) require a f [...]
</code></pre><p>The difference is in the class which is started and the configuration parameters which change how the Kafka Connect process decides where to store configurations, how to assign work, and where to store offsets and task statues. In the distributed mode, Kafka Connect stores the offsets, configs and task statuses in Kafka topics. It is recommended to manually create the topics for offset, configs and statuses in order to achieve the desired the number of partitions and repl [...]
value.converter.schemas.enable
</code></pre><p>The file source connector reads each line as a String. We will wrap each line in a Map and then add a second field to identify the origin of the event. To do this, we use two transformations:</p><ul><li><strong>HoistField</strong> to place the input line inside a Map</li><li><strong>InsertField</strong> to add the static field. In this example we’ll indicate that the record came from a file connector</li></ul><p>After adding the transformations, <code>connect-file-s [...]
@@ -6712,8 +6712,8 @@ KTable<String, Long> wordCounts = textLines
// Store the running counts as a changelog stream to the output topic.
wordCounts.toStream().to("streams-wordcount-output", Produced.with(Serdes.String(), Serdes.Long()));
-</code></pre><p>It implements the WordCount algorithm, which computes a word occurrence histogram from the input text. However, unlike other WordCount examples you might have seen before that operate on bounded data, the WordCount demo application behaves slightly differently because it is designed to operate on an <strong>infinite, unbounded stream</strong> of data. Similar to the bounded variant, it is a stateful algorithm that tracks and updates the counts of words. However, since it [...]
-$ cd kafka_2.13-4.2.0
+</code></pre><p>It implements the WordCount algorithm, which computes a word occurrence histogram from the input text. However, unlike other WordCount examples you might have seen before that operate on bounded data, the WordCount demo application behaves slightly differently because it is designed to operate on an <strong>infinite, unbounded stream</strong> of data. Similar to the bounded variant, it is a stateful algorithm that tracks and updates the counts of words. However, since it [...]
+$ cd kafka_2.13-4.2.2
</code></pre><h3 id=step-2-start-the-kafka-server>Step 2: Start the Kafka server<a class=td-heading-self-link href=#step-2-start-the-kafka-server aria-label="Heading self-link"></a></h3><p>Generate a Cluster UUID</p><pre><code>$ KAFKA_CLUSTER_ID="$(bin/kafka-storage.sh random-uuid)"
</code></pre><p>Format Log Directories</p><pre><code>$ bin/kafka-storage.sh format --standalone -t $KAFKA_CLUSTER_ID -c config/server.properties
</code></pre><p>Start the Kafka Server</p><pre><code>$ bin/kafka-server-start.sh config/server.properties
@@ -6806,7 +6806,7 @@ summit 1
</code></pre><p>As one can see, outputs of the Wordcount application is actually a continuous stream of updates, where each output record (i.e. each line in the original output above) is an updated count of a single word, aka record key such as “kafka”. For multiple records with the same key, each later record is an update of the previous one.</p><p>The two diagrams below illustrate what is essentially happening behind the scenes. The first column shows the evolution of the c [...]
-DarchetypeGroupId=org.apache.kafka \
-DarchetypeArtifactId=streams-quickstart-java \
--DarchetypeVersion=4.2.0 \
+-DarchetypeVersion=4.2.2 \
-DgroupId=streams.examples \
-DartifactId=streams-quickstart \
-Dversion=0.1 \
@@ -7116,20 +7116,20 @@ please refer to the <a href=/42/streams/developer-guide/streams-rebalance-protoc
4.2.x</p></td></tr><tr><td><p>2.4.x and<br>2.5.x</p></td><td><p>compatible</p></td><td><p>compatible</p></td></tr><tr><td><p>2.6.x and<br>2.7.x and<br>2.8.x and<br>3.0.x and<br>3.1.x and<br>3.2.x and<br>3.3.x and<br>3.4.x and<br>3.5.x and<br>3.6.x and<br>3.7.x and<br>3.8.x and<br>3.9.x and<br>4.0.x and<br>4.1.x and<br>4.2.x</p></td><td><p>compatible; enabling exactly-once v2 requires broker version 2.5.x or higher</p></td><td><p>compatible</p></td></tr></table><p><a href=/42/documentatio [...]
A high-level API that provides the most common data transformation operations such as <code>map</code>, <code>filter</code>, <code>join</code>, and <code>aggregations</code> out of the box. The DSL is the recommended starting point for developers new to Kafka Streams, and should cover many use cases and stream processing needs. If you’re writing a Scala application then you can use the <a href=dsl-api.html#scala-dsl>Kafka Streams DSL for Scala</a> library which removes much of the [...]
<a href=processor-api.html#streams-developer-guide-processor-api>Processor API</a>
-A low-level API that lets you add and connect processors as well as interact directly with state stores. The Processor API provides you with even more flexibility than the DSL but at the expense of requiring more manual work on the side of the application developer (e.g., more lines of code).</p><h1 id=libraries-and-maven-artifacts>Libraries and Maven artifacts<a class=td-heading-self-link href=#libraries-and-maven-artifacts aria-label="Heading self-link"></a></h1><p>This section lists t [...]
+A low-level API that lets you add and connect processors as well as interact directly with state stores. The Processor API provides you with even more flexibility than the DSL but at the expense of requiring more manual work on the side of the application developer (e.g., more lines of code).</p><h1 id=libraries-and-maven-artifacts>Libraries and Maven artifacts<a class=td-heading-self-link href=#libraries-and-maven-artifacts aria-label="Heading self-link"></a></h1><p>This section lists t [...]
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams-scala_2.13</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
</code></pre><h1 id=using-kafka-streams-within-your-application-code>Using Kafka Streams within your application code<a class=td-heading-self-link href=#using-kafka-streams-within-your-application-code aria-label="Heading self-link"></a></h1><p>You can call Kafka Streams from anywhere in your application code, but usually these calls are made within the <code>main()</code> method of your application, or some variant thereof. The basic elements of defining a processing topology within you [...]
import org.apache.kafka.streams.kstream.StreamsBuilder;
@@ -8537,9 +8537,9 @@ stream.to("my-stream-output-topic", Produced.with(Serdes.String(), Ser
</code></pre><p><strong>Causes data re-partitioning if any of the following conditions is true:</strong></p><ol><li>If the output topic has a different number of partitions than the stream/table.</li><li>If the <code>KStream</code> was marked for re-partitioning.</li><li>If you provide a custom <code>StreamPartitioner</code> to explicitly control how to distribute the output records across the partitions of the output topic.</li><li>If the key of an output record is <code>null</code>.</l [...]
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams-scala_2.13</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
-</code></pre><p>To use the library compiled against Scala 2.12 replace the <code>artifactId</code> with <code>kafka-streams-scala_2.12</code>.</p><p>When using SBT then you can reference the correct library using the following:</p><pre><code>libraryDependencies += "org.apache.kafka" %% "kafka-streams-scala" % "4.2.0"
+</code></pre><p>To use the library compiled against Scala 2.12 replace the <code>artifactId</code> with <code>kafka-streams-scala_2.12</code>.</p><p>When using SBT then you can reference the correct library using the following:</p><pre><code>libraryDependencies += "org.apache.kafka" %% "kafka-streams-scala" % "4.2.2"
</code></pre><h2 id=sample-usage>Sample Usage<a class=td-heading-self-link href=#sample-usage aria-label="Heading self-link"></a></h2><p>The library works by wrapping the original Java abstractions of Kafka Streams within a Scala wrapper object and then using implicit conversions between them. All the Scala abstractions are named identically as the corresponding Java abstraction, but they reside in a different package of the library e.g. the Scala class <code>org.apache.kafka.streams.sca [...]
import java.util.Properties
@@ -8861,12 +8861,12 @@ userCountByRegion.to("RegionCountsTopic", Produced.valueSerde(Serdes.L
</code></pre><p>If some of your incoming records are corrupted or ill-formatted, they will cause the deserializer class to report an error. Since 1.0.x we have introduced an <code>DeserializationExceptionHandler</code> interface which allows you to customize how to handle such records. The customized implementation of the interface can be specified via the <code>StreamsConfig</code>. For more details, please feel free to read the <a href=config-streams.html#default-deserialization-except [...]
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
</code></pre><p>This artifact provides the following serde implementations under the package <a href=https://github.com/apache/kafka/blob/4.2/clients/src/main/java/org/apache/kafka/common/serialization target=_blank rel=noopener>org.apache.kafka.common.serialization</a>, which you can leverage when e.g., defining default serializers in your Streams configuration.</p><table><tr><th><p>Data type</p></th><th><p>Serde</p></th></tr><tr><td><p>byte[]</p></td><td><p><code>Serdes.ByteArray()</co [...]
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
</code></pre><p>This artifact provides the following windowed serde implementations under the package <a href=https://github.com/apache/kafka/blob/4.2/streams/src/main/java/org/apache/kafka/streams/kstream target=_blank rel=noopener>org.apache.kafka.streams.kstream</a>:</p><p><strong>Serdes:</strong></p><ul><li><code>WindowedSerdes.TimeWindowedSerde<T></code></li><li><code>WindowedSerdes.SessionWindowedSerde<T></code></li></ul><p><strong>Serializers:</strong></p><ul><li><code>TimeW [...]
Serde<Windowed<String>> timeWindowedSerde =
@@ -8900,7 +8900,7 @@ TimeWindowedDeserializer<String> deserializer = new TimeWindowedDeserializ
</code></pre><h3 id=deprecated-configs>Deprecated Configs<a class=td-heading-self-link href=#deprecated-configs aria-label="Heading self-link"></a></h3><p>The following <code>StreamsConfig</code> parameters are deprecated in favor of passing parameters directly to serializer/deserializer constructors:</p><ul><li><code>StreamsConfig.WINDOWED_INNER_CLASS_SERDE</code> is deprecated in favor of <code>TimeWindowedSerializer.WINDOWED_INNER_SERIALIZER_CLASS</code> and <code>TimeWindowedDeserial [...]
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams-test-utils</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
<scope>test</scope>
</dependency>
</code></pre><h1 id=testing-a-streams-application>Testing a Streams application<a class=td-heading-self-link href=#testing-a-streams-application aria-label="Heading self-link"></a></h1><p>The test-utils package provides a <code>TopologyTestDriver</code> that can be used pipe data through a <code>Topology</code> that is either assembled manually using Processor API or via the DSL using <code>StreamsBuilder</code>. The test driver simulates the library runtime that continuously fetches rec [...]
diff --git a/42/apis/_print/index.html b/42/apis/_print/index.html
index 2de1970198..0ad0d47ba3 100644
--- a/42/apis/_print/index.html
+++ b/42/apis/_print/index.html
@@ -9,32 +9,32 @@ The Producer API allows applications to send streams of data to topics in the Ka
Kafka exposes all its functionality over a language-independent protocol which has clients available in many programming languages. However only the Java clients are maintained as part of the main Kafka project, the others are available as independent open source projects. A list of non-Java clients is available <a href=https://cwiki.apache.org/confluence/x/3gDVAQ target=_blank rel=noopener>here</a>.</li></ol><h1 id=producer-api>Producer API<a class=td-heading-self-link href=#producer-ap [...]
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
</code></pre><h1 id=consumer-api>Consumer API<a class=td-heading-self-link href=#consumer-api aria-label="Heading self-link"></a></h1><p>The Consumer API allows applications to read streams of data from topics in the Kafka cluster.</p><p>Examples of using the consumer are shown in the <a href=/42/javadoc/index.html?org/apache/kafka/clients/consumer/KafkaConsumer.html title="Kafka 4.2 Javadoc">javadocs</a>.</p><p>To use the consumer, add the following Maven dependency to your project:</p> [...]
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
</code></pre><h1 id=share-consumer-api>Share Consumer API<a class=td-heading-self-link href=#share-consumer-api aria-label="Heading self-link"></a></h1><p>The Share Consumer API enables applications in a share group to cooperatively consume and process data from Kafka topics.</p><p>Examples of using the share consumer are shown in the <a href=/42/javadoc/index.html?org/apache/kafka/clients/consumer/KafkaShareConsumer.html title="Kafka 4.2 Javadoc">javadocs</a>.</p><p>To use the share con [...]
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
</code></pre><h1 id=streams-api>Streams API<a class=td-heading-self-link href=#streams-api aria-label="Heading self-link"></a></h1><p>The <a href=/42/documentation/streams>Streams</a> API allows transforming streams of data from input topics to output topics.</p><p>Examples of using this library are shown in the <a href=/42/javadoc/index.html?org/apache/kafka/streams/KafkaStreams.html title="Kafka 4.2 Javadoc">javadocs</a>.</p><p>Additional documentation on using the Streams API is avail [...]
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
</code></pre><p>When using Scala you may optionally include the <code>kafka-streams-scala</code> library. Additional documentation on using the Kafka Streams DSL for Scala is available <a href=/42/documentation/streams/developer-guide/dsl-api.html#scala-dsl>in the developer guide</a>.</p><p>To use Kafka Streams DSL for Scala 2.13, add the following Maven dependency to your project:</p><pre><code><dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams-scala_2.13</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
</code></pre><h1 id=connect-api>Connect API<a class=td-heading-self-link href=#connect-api aria-label="Heading self-link"></a></h1><p>The Connect API allows implementing connectors that continually pull from some source data system into Kafka or push from Kafka into some sink data system.</p><p>Many users of Connect won’t need to use this API directly, though, they can use pre-built connectors without needing to write any code. Additional information on using Connect is available < [...]
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
</code></pre><p>For more information about the Admin APIs, see the <a href=/42/javadoc/index.html?org/apache/kafka/clients/admin/Admin.html title="Kafka 4.2 Javadoc">javadoc</a>.</p></div></div></main></div></div><footer class="td-footer d-print-none"><div class=container-fluid><div class="row align-items-center"><div class="col-12 col-md-3 text-center text-md-start"><div class=td-footer__social-icons><a href=/community/contact/ target=_blank rel=noopener aria-label=Contact class=td-foot [...]
</a><a href=https://twitter.com/apachekafka target=_blank rel=noopener aria-label=Twitter class=td-footer__social-link><i class="fab fa-twitter"></i>
diff --git a/42/apis/index.html b/42/apis/index.html
index 9b387f0d1d..6a26ecb3e5 100644
--- a/42/apis/index.html
+++ b/42/apis/index.html
@@ -94,34 +94,34 @@ For up-to-date documentation, see the
Kafka exposes all its functionality over a language-independent protocol which has clients available in many programming languages. However only the Java clients are maintained as part of the main Kafka project, the others are available as independent open source projects. A list of non-Java clients is available <a href=https://cwiki.apache.org/confluence/x/3gDVAQ target=_blank rel=noopener>here</a>.</li></ol><h1 id=producer-api>Producer API<a class=td-heading-self-link href=#producer-ap [...]
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
</code></pre><h1 id=consumer-api>Consumer API<a class=td-heading-self-link href=#consumer-api aria-label="Heading self-link"></a></h1><p>The Consumer API allows applications to read streams of data from topics in the Kafka cluster.</p><p>Examples of using the consumer are shown in the <a href=/42/javadoc/index.html?org/apache/kafka/clients/consumer/KafkaConsumer.html title="Kafka 4.2 Javadoc">javadocs</a>.</p><p>To use the consumer, add the following Maven dependency to your project:</p> [...]
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
</code></pre><h1 id=share-consumer-api>Share Consumer API<a class=td-heading-self-link href=#share-consumer-api aria-label="Heading self-link"></a></h1><p>The Share Consumer API enables applications in a share group to cooperatively consume and process data from Kafka topics.</p><p>Examples of using the share consumer are shown in the <a href=/42/javadoc/index.html?org/apache/kafka/clients/consumer/KafkaShareConsumer.html title="Kafka 4.2 Javadoc">javadocs</a>.</p><p>To use the share con [...]
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
</code></pre><h1 id=streams-api>Streams API<a class=td-heading-self-link href=#streams-api aria-label="Heading self-link"></a></h1><p>The <a href=/42/documentation/streams>Streams</a> API allows transforming streams of data from input topics to output topics.</p><p>Examples of using this library are shown in the <a href=/42/javadoc/index.html?org/apache/kafka/streams/KafkaStreams.html title="Kafka 4.2 Javadoc">javadocs</a>.</p><p>Additional documentation on using the Streams API is avail [...]
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
</code></pre><p>When using Scala you may optionally include the <code>kafka-streams-scala</code> library. Additional documentation on using the Kafka Streams DSL for Scala is available <a href=/42/documentation/streams/developer-guide/dsl-api.html#scala-dsl>in the developer guide</a>.</p><p>To use Kafka Streams DSL for Scala 2.13, add the following Maven dependency to your project:</p><pre><code><dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams-scala_2.13</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
</code></pre><h1 id=connect-api>Connect API<a class=td-heading-self-link href=#connect-api aria-label="Heading self-link"></a></h1><p>The Connect API allows implementing connectors that continually pull from some source data system into Kafka or push from Kafka into some sink data system.</p><p>Many users of Connect won’t need to use this API directly, though, they can use pre-built connectors without needing to write any code. Additional information on using Connect is available < [...]
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
-</code></pre><p>For more information about the Admin APIs, see the <a href=/42/javadoc/index.html?org/apache/kafka/clients/admin/Admin.html title="Kafka 4.2 Javadoc">javadoc</a>.</p><div class=section-index></div><div class=td-page-meta__lastmod>Last modified February 16, 2026: <a href=https://github.com/apache/kafka-site//commit/956020bebdb052aacfe7eef1c5421855c78639ee>Add 4.2 documentation and javadocs (#785) (956020bebd)</a></div></div></main></div></div><footer class="td-footer d-pri [...]
+</code></pre><p>For more information about the Admin APIs, see the <a href=/42/javadoc/index.html?org/apache/kafka/clients/admin/Admin.html title="Kafka 4.2 Javadoc">javadoc</a>.</p><div class=section-index></div><div class=td-page-meta__lastmod>Last modified September 29, 2026: <a href=https://github.com/apache/kafka-site//commit/aa5331bd90662a8bd38aa6afc1b3a8d7739e0123>MINOR: Updating versions for 4.2.2 release (#918) (aa5331bd90)</a></div></div></main></div></div><footer class="td-foo [...]
</a><a href=https://twitter.com/apachekafka target=_blank rel=noopener aria-label=Twitter class=td-footer__social-link><i class="fab fa-twitter"></i>
</a><a href=https://stackoverflow.com/questions/tagged/apache-kafka target=_blank rel=noopener aria-label="Stack Overflow" class=td-footer__social-link><i class="fab fa-stack-overflow"></i>
</a><a href=https://github.com/apache/kafka target=_blank rel=noopener aria-label=GitHub class=td-footer__social-link><i class="fab fa-github"></i>
diff --git a/42/kafka-connect/_print/index.html b/42/kafka-connect/_print/index.html
index 1f37822f31..252d584ad0 100644
--- a/42/kafka-connect/_print/index.html
+++ b/42/kafka-connect/_print/index.html
@@ -5,7 +5,7 @@
<a class="navbar-brand order-1 order-lg-0 mx-auto mx-lg-0" href=/><img src=/logos/kafka_logo--simple.png alt="Apache Kafka" class=navbar-logo-img></a><div class="order-2 d-lg-none" style=width:48px></div><div class="collapse navbar-collapse order-3 order-lg-1" id=main_navbar><ul class="navbar-nav ms-auto"><li class="nav-item dropdown"><a class="nav-link dropdown-toggle" href=/43/getting-started/ aria-haspopup=true aria-expanded=false>Get Started</a><ul class=dropdown-menu><li><a class=dr [...]
<i class="fas fa-search"></i></button><div class=search-input-wrapper id=searchInputWrapper><div class="td-search td-search--offline"><div class=td-search__icon></div><input type=search class="td-search__input form-control" placeholder="Search this site…" aria-label="Search this site…" autocomplete=off data-offline-search-index-json-src=/offline-search-index.3bf98c563118310e697b1aa99cbd60d1.json data-offline-search-base-href=/ data-offline-search-max-results=10></div></div></div></div></ [...]
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/42/kafka-connect/>Return to the regular view of this page</a>.</p></div><h1 class=title>Kafka Connect</h1><ul><li>1: <a href=#pg-4b6a0d083ee3f684ad000e6dd6e5bebc>Overview</a></li><li>2: <a href=#pg-37ecff4a667a70cb3b79a759085e04a3>User Guide</a></li><li>3: <a href=#pg-5f73c500b078c1c9b7cf003a4e46fb30>Connector Development Guide</a></li><li>4: <a href=#pg-95540931f04f9a309648132909375c29>Administration</a></li>< [...]
-</code></pre><p>The first parameter is the configuration for the worker. This includes settings such as the Kafka connection parameters, serialization format, and how frequently to commit offsets. The provided example should work well with a local cluster running with the default configuration provided by <code>config/server.properties</code>. It will require tweaking to use with a different configuration or production deployment. All workers (both standalone and distributed) require a f [...]
+</code></pre><p>The first parameter is the configuration for the worker. This includes settings such as the Kafka connection parameters, serialization format, and how frequently to commit offsets. The provided example should work well with a local cluster running with the default configuration provided by <code>config/server.properties</code>. It will require tweaking to use with a different configuration or production deployment. All workers (both standalone and distributed) require a f [...]
</code></pre><p>The difference is in the class which is started and the configuration parameters which change how the Kafka Connect process decides where to store configurations, how to assign work, and where to store offsets and task statues. In the distributed mode, Kafka Connect stores the offsets, configs and task statuses in Kafka topics. It is recommended to manually create the topics for offset, configs and statuses in order to achieve the desired the number of partitions and repl [...]
value.converter.schemas.enable
</code></pre><p>The file source connector reads each line as a String. We will wrap each line in a Map and then add a second field to identify the origin of the event. To do this, we use two transformations:</p><ul><li><strong>HoistField</strong> to place the input line inside a Map</li><li><strong>InsertField</strong> to add the static field. In this example we’ll indicate that the record came from a file connector</li></ul><p>After adding the transformations, <code>connect-file-s [...]
diff --git a/42/kafka-connect/user-guide/index.html b/42/kafka-connect/user-guide/index.html
index b8293d9639..40d4b642b7 100644
--- a/42/kafka-connect/user-guide/index.html
+++ b/42/kafka-connect/user-guide/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=robots content="index, follow"><link rel=icon type=image/png sizes=32x32 href=/images/apache.png><link rel=icon type=image/png sizes=16x16 href=/images/apache.png><link rel="shortcut icon" href=/images/apache.png><link rel=apple-touch-icon sizes=180x180 href=/images/apache.png><title>Us [...]
-<meta name=description content="User Guide"><meta property="og:title" content="User Guide"><meta property="og:description" content="User Guide"><meta property="og:type" content="article"><meta property="og:url" content="https://kafka.apache.org/42/kafka-connect/user-guide/"><meta property="article:section" content="42"><meta property="article:modified_time" content="2026-02-16T16:57:36+00:00"><meta itemprop=name content="User Guide"><meta itemprop=description content="User Guide"><meta i [...]
+<meta name=description content="User Guide"><meta property="og:title" content="User Guide"><meta property="og:description" content="User Guide"><meta property="og:type" content="article"><meta property="og:url" content="https://kafka.apache.org/42/kafka-connect/user-guide/"><meta property="article:section" content="42"><meta property="article:modified_time" content="2026-09-29T13:03:18+01:00"><meta itemprop=name content="User Guide"><meta itemprop=description content="User Guide"><meta i [...]
<span></span>
<span></span></div></button>
<a class="navbar-brand order-1 order-lg-0 mx-auto mx-lg-0" href=/><img src=/logos/kafka_logo--simple.png alt="Apache Kafka" class=navbar-logo-img></a><div class="order-2 d-lg-none" style=width:48px></div><div class="collapse navbar-collapse order-3 order-lg-1" id=main_navbar><ul class="navbar-nav ms-auto"><li class="nav-item dropdown"><a class="nav-link dropdown-toggle" href=/43/getting-started/ aria-haspopup=true aria-expanded=false>Get Started</a><ul class=dropdown-menu><li><a class=dr [...]
@@ -90,7 +90,7 @@
<a id=print href=/42/kafka-connect/_print/><i class="fa-solid fa-print fa-fw"></i> Print entire section</a></div></div><div class=td-sticky-content><div class=td-toc-content><div class=td-toc><nav id=TableOfContents><ul><li><ul><li><a href=#running-kafka-connect>Running Kafka Connect</a></li><li><a href=#configuring-connectors>Configuring Connectors</a></li><li><a href=#transformations>Transformations</a><ul><li><a href=#included-transformations>Included transformations</a></li><li><a hr [...]
For up-to-date documentation, see the
<a href=/43/ target=_blank>latest version</a>.</p></div><nav aria-label=breadcrumb class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=/42/>AK 4.2.X</a></li><li class=breadcrumb-item><a href=/42/kafka-connect/>Kafka Connect</a></li><li class="breadcrumb-item active" aria-current=page>User Guide</li></ol></nav><div class=td-content><h1>User Guide</h1><div class=lead>User Guide</div><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h [...]
-</code></pre><p>The first parameter is the configuration for the worker. This includes settings such as the Kafka connection parameters, serialization format, and how frequently to commit offsets. The provided example should work well with a local cluster running with the default configuration provided by <code>config/server.properties</code>. It will require tweaking to use with a different configuration or production deployment. All workers (both standalone and distributed) require a f [...]
+</code></pre><p>The first parameter is the configuration for the worker. This includes settings such as the Kafka connection parameters, serialization format, and how frequently to commit offsets. The provided example should work well with a local cluster running with the default configuration provided by <code>config/server.properties</code>. It will require tweaking to use with a different configuration or production deployment. All workers (both standalone and distributed) require a f [...]
</code></pre><p>The difference is in the class which is started and the configuration parameters which change how the Kafka Connect process decides where to store configurations, how to assign work, and where to store offsets and task statues. In the distributed mode, Kafka Connect stores the offsets, configs and task statuses in Kafka topics. It is recommended to manually create the topics for offset, configs and statuses in order to achieve the desired the number of partitions and repl [...]
value.converter.schemas.enable
</code></pre><p>The file source connector reads each line as a String. We will wrap each line in a Map and then add a second field to identify the origin of the event. To do this, we use two transformations:</p><ul><li><strong>HoistField</strong> to place the input line inside a Map</li><li><strong>InsertField</strong> to add the static field. In this example we’ll indicate that the record came from a file connector</li></ul><p>After adding the transformations, <code>connect-file-s [...]
@@ -192,7 +192,7 @@ errors.deadletterqueue.topic.name=my-connector-errors
errors.tolerance=all
</code></pre><h2 id=exactly-once-support>Exactly-once support<a class=td-heading-self-link href=#exactly-once-support aria-label="Heading self-link"></a></h2><p>Kafka Connect is capable of providing exactly-once semantics for sink connectors (as of version 0.11.0) and source connectors (as of version 3.3.0). Please note that <strong>support for exactly-once semantics is highly dependent on the type of connector you run.</strong> Even if you set all the correct worker properties in the co [...]
com.example.MySinkConnector
-</code></pre><p>You should then verify that your manifests are correct by using the verification steps with a pre-release artifact. If the verification succeeds, you can then release the plugin normally, and operators can upgrade to the compatible version.</p><h2 id=security>Security<a class=td-heading-self-link href=#security aria-label="Heading self-link"></a></h2><p>It’s important to understand the security concerns inherent to Connect. First, Connect allows running custom plugi [...]
+</code></pre><p>You should then verify that your manifests are correct by using the verification steps with a pre-release artifact. If the verification succeeds, you can then release the plugin normally, and operators can upgrade to the compatible version.</p><h2 id=security>Security<a class=td-heading-self-link href=#security aria-label="Heading self-link"></a></h2><p>It’s important to understand the security concerns inherent to Connect. First, Connect allows running custom plugi [...]
<span class="text-dark text-truncate d-inline-block" style=max-width:18rem>Overview</span></a></div><div class="ms-auto d-flex flex-column align-items-end"><a class="btn pager-btn rounded-3 fw-semibold py-2 px-3 d-inline-flex align-items-center gap-2" style=min-width:12rem href=/42/kafka-connect/connector-development-guide/ rel=next aria-label="Next: Connector Development Guide"><span class="fw-semibold text-dark">Next:</span>
<span class="text-dark text-truncate d-inline-block text-end" style=max-width:18rem>Connector Development Guide
</span><span class="fw-semibold text-dark">›</span></a></div></nav></div></main></div></div><footer class="td-footer d-print-none"><div class=container-fluid><div class="row align-items-center"><div class="col-12 col-md-3 text-center text-md-start"><div class=td-footer__social-icons><a href=/community/contact/ target=_blank rel=noopener aria-label=Contact class=td-footer__social-link><i class="fa fa-envelope"></i>
diff --git a/42/operations/_print/index.html b/42/operations/_print/index.html
index 4dc549726d..d10304ff2a 100644
--- a/42/operations/_print/index.html
+++ b/42/operations/_print/index.html
@@ -452,7 +452,7 @@ foo
}
>> exit
</code></pre><p>Note: <code>00000000000000000000-0000000000.checkpoint</code> does not contain cluster metadata. Use a valid snapshot file when examining metadata with the <code>kafka-metadata-shell.sh</code> tool.</p><h2 id=deploying-considerations>Deploying Considerations<a class=td-heading-self-link href=#deploying-considerations aria-label="Heading self-link"></a></h2><ul><li>Kafka server’s <code>process.roles</code> should be set to either <code>broker</code> or <code>controll [...]
-# ex: `git checkout 4.2.0`
+# ex: `git checkout 4.2.2`
$ ./gradlew clean :storage:testJar
</code></pre><p>After build successfully, there should be a <code>kafka-storage-x.x.x-test.jar</code> file under <code>storage/build/libs</code>. Next, setting configurations in the broker side to enable tiered storage feature.</p><pre><code># Sample KRaft broker server.properties listening on PLAINTEXT://:9092
remote.log.storage.system.enable=true
@@ -464,7 +464,7 @@ remote.log.metadata.manager.listener.name=PLAINTEXT
# This is the mandatory configuration for tiered storage.
# Here, we use the `LocalTieredStorage` built above.
remote.log.storage.manager.class.name=org.apache.kafka.server.log.remote.storage.LocalTieredStorage
-remote.log.storage.manager.class.path=/PATH/TO/kafka-storage-4.2.0-test.jar
+remote.log.storage.manager.class.path=/PATH/TO/kafka-storage-4.2.2-test.jar
# These 2 prefix are default values, but customizable
remote.log.storage.manager.impl.prefix=rsm.config.
diff --git a/42/operations/tiered-storage/index.html b/42/operations/tiered-storage/index.html
index 219cc225f4..2172721c0e 100644
--- a/42/operations/tiered-storage/index.html
+++ b/42/operations/tiered-storage/index.html
@@ -1,5 +1,5 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=robots content="index, follow"><link rel=icon type=image/png sizes=32x32 href=/images/apache.png><link rel=icon type=image/png sizes=16x16 href=/images/apache.png><link rel="shortcut icon" href=/images/apache.png><link rel=apple-touch-icon sizes=180x180 href=/images/apache.png><title>Ti [...]
-<meta name=description content="Tiered Storage"><meta property="og:title" content="Tiered Storage"><meta property="og:description" content="Tiered Storage"><meta property="og:type" content="article"><meta property="og:url" content="https://kafka.apache.org/42/operations/tiered-storage/"><meta property="article:section" content="42"><meta property="article:modified_time" content="2026-02-16T16:57:36+00:00"><meta itemprop=name content="Tiered Storage"><meta itemprop=description content="Ti [...]
+<meta name=description content="Tiered Storage"><meta property="og:title" content="Tiered Storage"><meta property="og:description" content="Tiered Storage"><meta property="og:type" content="article"><meta property="og:url" content="https://kafka.apache.org/42/operations/tiered-storage/"><meta property="article:section" content="42"><meta property="article:modified_time" content="2026-09-29T13:03:18+01:00"><meta itemprop=name content="Tiered Storage"><meta itemprop=description content="Ti [...]
<span></span>
<span></span></div></button>
<a class="navbar-brand order-1 order-lg-0 mx-auto mx-lg-0" href=/><img src=/logos/kafka_logo--simple.png alt="Apache Kafka" class=navbar-logo-img></a><div class="order-2 d-lg-none" style=width:48px></div><div class="collapse navbar-collapse order-3 order-lg-1" id=main_navbar><ul class="navbar-nav ms-auto"><li class="nav-item dropdown"><a class="nav-link dropdown-toggle" href=/43/getting-started/ aria-haspopup=true aria-expanded=false>Get Started</a><ul class=dropdown-menu><li><a class=dr [...]
@@ -90,7 +90,7 @@
<a id=print href=/42/operations/_print/><i class="fa-solid fa-print fa-fw"></i> Print entire section</a></div></div><div class=td-sticky-content><div class=td-toc-content><div class=td-toc><nav id=TableOfContents><ul><li><ul><li><a href=#tiered-storage-overview>Tiered Storage Overview</a></li><li><a href=#configuration>Configuration</a><ul><li><a href=#broker-configurations>Broker Configurations</a></li><li><a href=#topic-configurations>Topic Configurations</a></li></ul></li><li><a href= [...]
For up-to-date documentation, see the
<a href=/43/ target=_blank>latest version</a>.</p></div><nav aria-label=breadcrumb class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=/42/>AK 4.2.X</a></li><li class=breadcrumb-item><a href=/42/operations/>Operations</a></li><li class="breadcrumb-item active" aria-current=page>Tiered Storage</li></ol></nav><div class=td-content><h1>Tiered Storage</h1><div class=lead>Tiered Storage</div><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-ta [...]
-# ex: `git checkout 4.2.0`
+# ex: `git checkout 4.2.2`
$ ./gradlew clean :storage:testJar
</code></pre><p>After build successfully, there should be a <code>kafka-storage-x.x.x-test.jar</code> file under <code>storage/build/libs</code>. Next, setting configurations in the broker side to enable tiered storage feature.</p><pre><code># Sample KRaft broker server.properties listening on PLAINTEXT://:9092
remote.log.storage.system.enable=true
@@ -102,7 +102,7 @@ remote.log.metadata.manager.listener.name=PLAINTEXT
# This is the mandatory configuration for tiered storage.
# Here, we use the `LocalTieredStorage` built above.
remote.log.storage.manager.class.name=org.apache.kafka.server.log.remote.storage.LocalTieredStorage
-remote.log.storage.manager.class.path=/PATH/TO/kafka-storage-4.2.0-test.jar
+remote.log.storage.manager.class.path=/PATH/TO/kafka-storage-4.2.2-test.jar
# These 2 prefix are default values, but customizable
remote.log.storage.manager.impl.prefix=rsm.config.
@@ -142,7 +142,7 @@ $ bin/kafka-topics.sh --create --topic tieredTopic --bootstrap-server localhost:
--alter --entity-type topics --entity-name tieredTopic \
--add-config 'remote.storage.enable=false,remote.log.delete.on.disable=true'
</code></pre><p>You can also re-enable tiered storage feature at the topic level. Please note, if you want to disable tiered storage at the cluster level, you should delete the tiered storage enabled topics explicitly. Attempting to disable tiered storage at the cluster level without deleting the topics using tiered storage will result in an exception during startup.</p><pre><code>$ bin/kafka-topics.sh --delete --topic tieredTopic --bootstrap-server localhost:9092
-</code></pre><p>After topics are deleted, you’re safe to set <code>remote.log.storage.system.enable=false</code> in the broker configuration.</p><h2 id=limitations>Limitations<a class=td-heading-self-link href=#limitations aria-label="Heading self-link"></a></h2><p>While the Tiered Storage works for most use cases, it is still important to be aware of the following limitations:</p><ul><li>No support for compacted topics</li><li>Disabling tiered storage on all topics where it is ena [...]
+</code></pre><p>After topics are deleted, you’re safe to set <code>remote.log.storage.system.enable=false</code> in the broker configuration.</p><h2 id=limitations>Limitations<a class=td-heading-self-link href=#limitations aria-label="Heading self-link"></a></h2><p>While the Tiered Storage works for most use cases, it is still important to be aware of the following limitations:</p><ul><li>No support for compacted topics</li><li>Disabling tiered storage on all topics where it is ena [...]
<span class="text-dark text-truncate d-inline-block" style=max-width:18rem>KRaft</span></a></div><div class="ms-auto d-flex flex-column align-items-end"><a class="btn pager-btn rounded-3 fw-semibold py-2 px-3 d-inline-flex align-items-center gap-2" style=min-width:12rem href=/42/operations/consumer-rebalance-protocol/ rel=next aria-label="Next: Consumer Rebalance Protocol"><span class="fw-semibold text-dark">Next:</span>
<span class="text-dark text-truncate d-inline-block text-end" style=max-width:18rem>Consumer Rebalance Protocol
</span><span class="fw-semibold text-dark">›</span></a></div></nav></div></main></div></div><footer class="td-footer d-print-none"><div class=container-fluid><div class="row align-items-center"><div class="col-12 col-md-3 text-center text-md-start"><div class=td-footer__social-icons><a href=/community/contact/ target=_blank rel=noopener aria-label=Contact class=td-footer__social-link><i class="fa fa-envelope"></i>
diff --git a/42/streams/_print/index.html b/42/streams/_print/index.html
index d704ead2b8..49e2ed5355 100644
--- a/42/streams/_print/index.html
+++ b/42/streams/_print/index.html
@@ -104,8 +104,8 @@ KTable<String, Long> wordCounts = textLines
// Store the running counts as a changelog stream to the output topic.
wordCounts.toStream().to("streams-wordcount-output", Produced.with(Serdes.String(), Serdes.Long()));
-</code></pre><p>It implements the WordCount algorithm, which computes a word occurrence histogram from the input text. However, unlike other WordCount examples you might have seen before that operate on bounded data, the WordCount demo application behaves slightly differently because it is designed to operate on an <strong>infinite, unbounded stream</strong> of data. Similar to the bounded variant, it is a stateful algorithm that tracks and updates the counts of words. However, since it [...]
-$ cd kafka_2.13-4.2.0
+</code></pre><p>It implements the WordCount algorithm, which computes a word occurrence histogram from the input text. However, unlike other WordCount examples you might have seen before that operate on bounded data, the WordCount demo application behaves slightly differently because it is designed to operate on an <strong>infinite, unbounded stream</strong> of data. Similar to the bounded variant, it is a stateful algorithm that tracks and updates the counts of words. However, since it [...]
+$ cd kafka_2.13-4.2.2
</code></pre><h3 id=step-2-start-the-kafka-server>Step 2: Start the Kafka server<a class=td-heading-self-link href=#step-2-start-the-kafka-server aria-label="Heading self-link"></a></h3><p>Generate a Cluster UUID</p><pre><code>$ KAFKA_CLUSTER_ID="$(bin/kafka-storage.sh random-uuid)"
</code></pre><p>Format Log Directories</p><pre><code>$ bin/kafka-storage.sh format --standalone -t $KAFKA_CLUSTER_ID -c config/server.properties
</code></pre><p>Start the Kafka Server</p><pre><code>$ bin/kafka-server-start.sh config/server.properties
@@ -198,7 +198,7 @@ summit 1
</code></pre><p>As one can see, outputs of the Wordcount application is actually a continuous stream of updates, where each output record (i.e. each line in the original output above) is an updated count of a single word, aka record key such as “kafka”. For multiple records with the same key, each later record is an update of the previous one.</p><p>The two diagrams below illustrate what is essentially happening behind the scenes. The first column shows the evolution of the c [...]
-DarchetypeGroupId=org.apache.kafka \
-DarchetypeArtifactId=streams-quickstart-java \
--DarchetypeVersion=4.2.0 \
+-DarchetypeVersion=4.2.2 \
-DgroupId=streams.examples \
-DartifactId=streams-quickstart \
-Dversion=0.1 \
@@ -508,20 +508,20 @@ please refer to the <a href=/42/streams/developer-guide/streams-rebalance-protoc
4.2.x</p></td></tr><tr><td><p>2.4.x and<br>2.5.x</p></td><td><p>compatible</p></td><td><p>compatible</p></td></tr><tr><td><p>2.6.x and<br>2.7.x and<br>2.8.x and<br>3.0.x and<br>3.1.x and<br>3.2.x and<br>3.3.x and<br>3.4.x and<br>3.5.x and<br>3.6.x and<br>3.7.x and<br>3.8.x and<br>3.9.x and<br>4.0.x and<br>4.1.x and<br>4.2.x</p></td><td><p>compatible; enabling exactly-once v2 requires broker version 2.5.x or higher</p></td><td><p>compatible</p></td></tr></table><p><a href=/42/documentatio [...]
A high-level API that provides the most common data transformation operations such as <code>map</code>, <code>filter</code>, <code>join</code>, and <code>aggregations</code> out of the box. The DSL is the recommended starting point for developers new to Kafka Streams, and should cover many use cases and stream processing needs. If you’re writing a Scala application then you can use the <a href=dsl-api.html#scala-dsl>Kafka Streams DSL for Scala</a> library which removes much of the [...]
<a href=processor-api.html#streams-developer-guide-processor-api>Processor API</a>
-A low-level API that lets you add and connect processors as well as interact directly with state stores. The Processor API provides you with even more flexibility than the DSL but at the expense of requiring more manual work on the side of the application developer (e.g., more lines of code).</p><h1 id=libraries-and-maven-artifacts>Libraries and Maven artifacts<a class=td-heading-self-link href=#libraries-and-maven-artifacts aria-label="Heading self-link"></a></h1><p>This section lists t [...]
+A low-level API that lets you add and connect processors as well as interact directly with state stores. The Processor API provides you with even more flexibility than the DSL but at the expense of requiring more manual work on the side of the application developer (e.g., more lines of code).</p><h1 id=libraries-and-maven-artifacts>Libraries and Maven artifacts<a class=td-heading-self-link href=#libraries-and-maven-artifacts aria-label="Heading self-link"></a></h1><p>This section lists t [...]
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams-scala_2.13</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
</code></pre><h1 id=using-kafka-streams-within-your-application-code>Using Kafka Streams within your application code<a class=td-heading-self-link href=#using-kafka-streams-within-your-application-code aria-label="Heading self-link"></a></h1><p>You can call Kafka Streams from anywhere in your application code, but usually these calls are made within the <code>main()</code> method of your application, or some variant thereof. The basic elements of defining a processing topology within you [...]
import org.apache.kafka.streams.kstream.StreamsBuilder;
@@ -1929,9 +1929,9 @@ stream.to("my-stream-output-topic", Produced.with(Serdes.String(), Ser
</code></pre><p><strong>Causes data re-partitioning if any of the following conditions is true:</strong></p><ol><li>If the output topic has a different number of partitions than the stream/table.</li><li>If the <code>KStream</code> was marked for re-partitioning.</li><li>If you provide a custom <code>StreamPartitioner</code> to explicitly control how to distribute the output records across the partitions of the output topic.</li><li>If the key of an output record is <code>null</code>.</l [...]
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams-scala_2.13</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
-</code></pre><p>To use the library compiled against Scala 2.12 replace the <code>artifactId</code> with <code>kafka-streams-scala_2.12</code>.</p><p>When using SBT then you can reference the correct library using the following:</p><pre><code>libraryDependencies += "org.apache.kafka" %% "kafka-streams-scala" % "4.2.0"
+</code></pre><p>To use the library compiled against Scala 2.12 replace the <code>artifactId</code> with <code>kafka-streams-scala_2.12</code>.</p><p>When using SBT then you can reference the correct library using the following:</p><pre><code>libraryDependencies += "org.apache.kafka" %% "kafka-streams-scala" % "4.2.2"
</code></pre><h2 id=sample-usage>Sample Usage<a class=td-heading-self-link href=#sample-usage aria-label="Heading self-link"></a></h2><p>The library works by wrapping the original Java abstractions of Kafka Streams within a Scala wrapper object and then using implicit conversions between them. All the Scala abstractions are named identically as the corresponding Java abstraction, but they reside in a different package of the library e.g. the Scala class <code>org.apache.kafka.streams.sca [...]
import java.util.Properties
@@ -2253,12 +2253,12 @@ userCountByRegion.to("RegionCountsTopic", Produced.valueSerde(Serdes.L
</code></pre><p>If some of your incoming records are corrupted or ill-formatted, they will cause the deserializer class to report an error. Since 1.0.x we have introduced an <code>DeserializationExceptionHandler</code> interface which allows you to customize how to handle such records. The customized implementation of the interface can be specified via the <code>StreamsConfig</code>. For more details, please feel free to read the <a href=config-streams.html#default-deserialization-except [...]
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
</code></pre><p>This artifact provides the following serde implementations under the package <a href=https://github.com/apache/kafka/blob/4.2/clients/src/main/java/org/apache/kafka/common/serialization target=_blank rel=noopener>org.apache.kafka.common.serialization</a>, which you can leverage when e.g., defining default serializers in your Streams configuration.</p><table><tr><th><p>Data type</p></th><th><p>Serde</p></th></tr><tr><td><p>byte[]</p></td><td><p><code>Serdes.ByteArray()</co [...]
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
</code></pre><p>This artifact provides the following windowed serde implementations under the package <a href=https://github.com/apache/kafka/blob/4.2/streams/src/main/java/org/apache/kafka/streams/kstream target=_blank rel=noopener>org.apache.kafka.streams.kstream</a>:</p><p><strong>Serdes:</strong></p><ul><li><code>WindowedSerdes.TimeWindowedSerde<T></code></li><li><code>WindowedSerdes.SessionWindowedSerde<T></code></li></ul><p><strong>Serializers:</strong></p><ul><li><code>TimeW [...]
Serde<Windowed<String>> timeWindowedSerde =
@@ -2292,7 +2292,7 @@ TimeWindowedDeserializer<String> deserializer = new TimeWindowedDeserializ
</code></pre><h3 id=deprecated-configs>Deprecated Configs<a class=td-heading-self-link href=#deprecated-configs aria-label="Heading self-link"></a></h3><p>The following <code>StreamsConfig</code> parameters are deprecated in favor of passing parameters directly to serializer/deserializer constructors:</p><ul><li><code>StreamsConfig.WINDOWED_INNER_CLASS_SERDE</code> is deprecated in favor of <code>TimeWindowedSerializer.WINDOWED_INNER_SERIALIZER_CLASS</code> and <code>TimeWindowedDeserial [...]
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams-test-utils</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
<scope>test</scope>
</dependency>
</code></pre><h1 id=testing-a-streams-application>Testing a Streams application<a class=td-heading-self-link href=#testing-a-streams-application aria-label="Heading self-link"></a></h1><p>The test-utils package provides a <code>TopologyTestDriver</code> that can be used pipe data through a <code>Topology</code> that is either assembled manually using Processor API or via the DSL using <code>StreamsBuilder</code>. The test driver simulates the library runtime that continuously fetches rec [...]
diff --git a/42/streams/developer-guide/_print/index.html b/42/streams/developer-guide/_print/index.html
index 1fd529f8bd..59b104d705 100644
--- a/42/streams/developer-guide/_print/index.html
+++ b/42/streams/developer-guide/_print/index.html
@@ -7,20 +7,20 @@
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/42/streams/developer-guide/>Return to the regular view of this page</a>.</p></div><h1 class=title>Streams Developer Guide</h1><ul><li>1: <a href=#pg-497a6fb7c7f6cc6aaba926f0c42d5923>Writing a Streams Application</a></li><li>2: <a href=#pg-6fc3e8b307f016d416e6c4c8adb3ef4d>Configuring a Streams Application</a></li><li>3: <a href=#pg-1e4585026492ee011c5737d9c1bc1ecb>Streams DSL</a></li><li>4: <a href=#pg-4552ab069 [...]
A high-level API that provides the most common data transformation operations such as <code>map</code>, <code>filter</code>, <code>join</code>, and <code>aggregations</code> out of the box. The DSL is the recommended starting point for developers new to Kafka Streams, and should cover many use cases and stream processing needs. If you’re writing a Scala application then you can use the <a href=dsl-api.html#scala-dsl>Kafka Streams DSL for Scala</a> library which removes much of the [...]
<a href=processor-api.html#streams-developer-guide-processor-api>Processor API</a>
-A low-level API that lets you add and connect processors as well as interact directly with state stores. The Processor API provides you with even more flexibility than the DSL but at the expense of requiring more manual work on the side of the application developer (e.g., more lines of code).</p><h1 id=libraries-and-maven-artifacts>Libraries and Maven artifacts<a class=td-heading-self-link href=#libraries-and-maven-artifacts aria-label="Heading self-link"></a></h1><p>This section lists t [...]
+A low-level API that lets you add and connect processors as well as interact directly with state stores. The Processor API provides you with even more flexibility than the DSL but at the expense of requiring more manual work on the side of the application developer (e.g., more lines of code).</p><h1 id=libraries-and-maven-artifacts>Libraries and Maven artifacts<a class=td-heading-self-link href=#libraries-and-maven-artifacts aria-label="Heading self-link"></a></h1><p>This section lists t [...]
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams-scala_2.13</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
</code></pre><h1 id=using-kafka-streams-within-your-application-code>Using Kafka Streams within your application code<a class=td-heading-self-link href=#using-kafka-streams-within-your-application-code aria-label="Heading self-link"></a></h1><p>You can call Kafka Streams from anywhere in your application code, but usually these calls are made within the <code>main()</code> method of your application, or some variant thereof. The basic elements of defining a processing topology within you [...]
import org.apache.kafka.streams.kstream.StreamsBuilder;
@@ -1428,9 +1428,9 @@ stream.to("my-stream-output-topic", Produced.with(Serdes.String(), Ser
</code></pre><p><strong>Causes data re-partitioning if any of the following conditions is true:</strong></p><ol><li>If the output topic has a different number of partitions than the stream/table.</li><li>If the <code>KStream</code> was marked for re-partitioning.</li><li>If you provide a custom <code>StreamPartitioner</code> to explicitly control how to distribute the output records across the partitions of the output topic.</li><li>If the key of an output record is <code>null</code>.</l [...]
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams-scala_2.13</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
-</code></pre><p>To use the library compiled against Scala 2.12 replace the <code>artifactId</code> with <code>kafka-streams-scala_2.12</code>.</p><p>When using SBT then you can reference the correct library using the following:</p><pre><code>libraryDependencies += "org.apache.kafka" %% "kafka-streams-scala" % "4.2.0"
+</code></pre><p>To use the library compiled against Scala 2.12 replace the <code>artifactId</code> with <code>kafka-streams-scala_2.12</code>.</p><p>When using SBT then you can reference the correct library using the following:</p><pre><code>libraryDependencies += "org.apache.kafka" %% "kafka-streams-scala" % "4.2.2"
</code></pre><h2 id=sample-usage>Sample Usage<a class=td-heading-self-link href=#sample-usage aria-label="Heading self-link"></a></h2><p>The library works by wrapping the original Java abstractions of Kafka Streams within a Scala wrapper object and then using implicit conversions between them. All the Scala abstractions are named identically as the corresponding Java abstraction, but they reside in a different package of the library e.g. the Scala class <code>org.apache.kafka.streams.sca [...]
import java.util.Properties
@@ -1752,12 +1752,12 @@ userCountByRegion.to("RegionCountsTopic", Produced.valueSerde(Serdes.L
</code></pre><p>If some of your incoming records are corrupted or ill-formatted, they will cause the deserializer class to report an error. Since 1.0.x we have introduced an <code>DeserializationExceptionHandler</code> interface which allows you to customize how to handle such records. The customized implementation of the interface can be specified via the <code>StreamsConfig</code>. For more details, please feel free to read the <a href=config-streams.html#default-deserialization-except [...]
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
</code></pre><p>This artifact provides the following serde implementations under the package <a href=https://github.com/apache/kafka/blob/4.2/clients/src/main/java/org/apache/kafka/common/serialization target=_blank rel=noopener>org.apache.kafka.common.serialization</a>, which you can leverage when e.g., defining default serializers in your Streams configuration.</p><table><tr><th><p>Data type</p></th><th><p>Serde</p></th></tr><tr><td><p>byte[]</p></td><td><p><code>Serdes.ByteArray()</co [...]
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
</code></pre><p>This artifact provides the following windowed serde implementations under the package <a href=https://github.com/apache/kafka/blob/4.2/streams/src/main/java/org/apache/kafka/streams/kstream target=_blank rel=noopener>org.apache.kafka.streams.kstream</a>:</p><p><strong>Serdes:</strong></p><ul><li><code>WindowedSerdes.TimeWindowedSerde<T></code></li><li><code>WindowedSerdes.SessionWindowedSerde<T></code></li></ul><p><strong>Serializers:</strong></p><ul><li><code>TimeW [...]
Serde<Windowed<String>> timeWindowedSerde =
@@ -1791,7 +1791,7 @@ TimeWindowedDeserializer<String> deserializer = new TimeWindowedDeserializ
</code></pre><h3 id=deprecated-configs>Deprecated Configs<a class=td-heading-self-link href=#deprecated-configs aria-label="Heading self-link"></a></h3><p>The following <code>StreamsConfig</code> parameters are deprecated in favor of passing parameters directly to serializer/deserializer constructors:</p><ul><li><code>StreamsConfig.WINDOWED_INNER_CLASS_SERDE</code> is deprecated in favor of <code>TimeWindowedSerializer.WINDOWED_INNER_SERIALIZER_CLASS</code> and <code>TimeWindowedDeserial [...]
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams-test-utils</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
<scope>test</scope>
</dependency>
</code></pre><h1 id=testing-a-streams-application>Testing a Streams application<a class=td-heading-self-link href=#testing-a-streams-application aria-label="Heading self-link"></a></h1><p>The test-utils package provides a <code>TopologyTestDriver</code> that can be used pipe data through a <code>Topology</code> that is either assembled manually using Processor API or via the DSL using <code>StreamsBuilder</code>. The test driver simulates the library runtime that continuously fetches rec [...]
diff --git a/42/streams/developer-guide/datatypes/index.html b/42/streams/developer-guide/datatypes/index.html
index 241a0cb12e..133dca8469 100644
--- a/42/streams/developer-guide/datatypes/index.html
+++ b/42/streams/developer-guide/datatypes/index.html
@@ -3,9 +3,9 @@
You can provide Serdes by using either of these methods, but you must use at least one:
By setting default Serdes in the java.util.Properties config instance. By specifying explicit Serdes when calling the appropriate API methods, thus overriding the defaults."><meta property="og:title" content="Data Types and Serialization"><meta property="og:description" content="Every Kafka Streams application must provide Serdes (Serializer/Deserializer) for the data types of record keys and record values (e.g. java.lang.String) to materialize the data when necessary. Operations that re [...]
You can provide Serdes by using either of these methods, but you must use at least one:
-By setting default Serdes in the java.util.Properties config instance. By specifying explicit Serdes when calling the appropriate API methods, thus overriding the defaults."><meta property="og:type" content="article"><meta property="og:url" content="https://kafka.apache.org/42/streams/developer-guide/datatypes/"><meta property="article:section" content="42"><meta property="article:modified_time" content="2026-02-16T16:57:36+00:00"><meta itemprop=name content="Data Types and Serialization [...]
+By setting default Serdes in the java.util.Properties config instance. By specifying explicit Serdes when calling the appropriate API methods, thus overriding the defaults."><meta property="og:type" content="article"><meta property="og:url" content="https://kafka.apache.org/42/streams/developer-guide/datatypes/"><meta property="article:section" content="42"><meta property="article:modified_time" content="2026-09-29T13:03:18+01:00"><meta itemprop=name content="Data Types and Serialization [...]
You can provide Serdes by using either of these methods, but you must use at least one:
-By setting default Serdes in the java.util.Properties config instance. By specifying explicit Serdes when calling the appropriate API methods, thus overriding the defaults."><meta itemprop=dateModified content="2026-02-16T16:57:36+00:00"><meta itemprop=wordCount content="939"><meta itemprop=keywords content="kafka,docs,"><meta name=twitter:card content="summary"><meta name=twitter:title content="Data Types and Serialization"><meta name=twitter:description content="Every Kafka Streams app [...]
+By setting default Serdes in the java.util.Properties config instance. By specifying explicit Serdes when calling the appropriate API methods, thus overriding the defaults."><meta itemprop=dateModified content="2026-09-29T13:03:18+01:00"><meta itemprop=wordCount content="939"><meta itemprop=keywords content="kafka,docs,"><meta name=twitter:card content="summary"><meta name=twitter:title content="Data Types and Serialization"><meta name=twitter:description content="Every Kafka Streams app [...]
You can provide Serdes by using either of these methods, but you must use at least one:
By setting default Serdes in the java.util.Properties config instance. By specifying explicit Serdes when calling the appropriate API methods, thus overriding the defaults."><link rel=preload href=/scss/main.min.69b0f43de0cd12cd158eaf47ea571b3800d97c1ef9ffc85787b2bcbb7d159d4a.css as=style integrity="sha256-abD0PeDNEs0Vjq9H6lcbOADZfB75/8hXh7K8u30VnUo=" crossorigin=anonymous><link href=/scss/main.min.69b0f43de0cd12cd158eaf47ea571b3800d97c1ef9ffc85787b2bcbb7d159d4a.css rel=stylesheet integr [...]
<span></span>
@@ -126,12 +126,12 @@ userCountByRegion.to("RegionCountsTopic", Produced.valueSerde(Serdes.L
</code></pre><p>If some of your incoming records are corrupted or ill-formatted, they will cause the deserializer class to report an error. Since 1.0.x we have introduced an <code>DeserializationExceptionHandler</code> interface which allows you to customize how to handle such records. The customized implementation of the interface can be specified via the <code>StreamsConfig</code>. For more details, please feel free to read the <a href=config-streams.html#default-deserialization-except [...]
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
</code></pre><p>This artifact provides the following serde implementations under the package <a href=https://github.com/apache/kafka/blob/4.2/clients/src/main/java/org/apache/kafka/common/serialization target=_blank rel=noopener>org.apache.kafka.common.serialization</a>, which you can leverage when e.g., defining default serializers in your Streams configuration.</p><table><tr><th><p>Data type</p></th><th><p>Serde</p></th></tr><tr><td><p>byte[]</p></td><td><p><code>Serdes.ByteArray()</co [...]
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
</code></pre><p>This artifact provides the following windowed serde implementations under the package <a href=https://github.com/apache/kafka/blob/4.2/streams/src/main/java/org/apache/kafka/streams/kstream target=_blank rel=noopener>org.apache.kafka.streams.kstream</a>:</p><p><strong>Serdes:</strong></p><ul><li><code>WindowedSerdes.TimeWindowedSerde<T></code></li><li><code>WindowedSerdes.SessionWindowedSerde<T></code></li></ul><p><strong>Serializers:</strong></p><ul><li><code>TimeW [...]
Serde<Windowed<String>> timeWindowedSerde =
@@ -162,7 +162,7 @@ TimeWindowedDeserializer<String> deserializer = new TimeWindowedDeserializ
--formatter-property print.key=true \
--formatter-property key.deserializer=org.apache.kafka.streams.kstream.SessionWindowedDeserializer \
--formatter-property key.deserializer.windowed.inner.deserializer.class=org.apache.kafka.common.serialization.StringDeserializer
-</code></pre><h3 id=deprecated-configs>Deprecated Configs<a class=td-heading-self-link href=#deprecated-configs aria-label="Heading self-link"></a></h3><p>The following <code>StreamsConfig</code> parameters are deprecated in favor of passing parameters directly to serializer/deserializer constructors:</p><ul><li><code>StreamsConfig.WINDOWED_INNER_CLASS_SERDE</code> is deprecated in favor of <code>TimeWindowedSerializer.WINDOWED_INNER_SERIALIZER_CLASS</code> and <code>TimeWindowedDeserial [...]
+</code></pre><h3 id=deprecated-configs>Deprecated Configs<a class=td-heading-self-link href=#deprecated-configs aria-label="Heading self-link"></a></h3><p>The following <code>StreamsConfig</code> parameters are deprecated in favor of passing parameters directly to serializer/deserializer constructors:</p><ul><li><code>StreamsConfig.WINDOWED_INNER_CLASS_SERDE</code> is deprecated in favor of <code>TimeWindowedSerializer.WINDOWED_INNER_SERIALIZER_CLASS</code> and <code>TimeWindowedDeserial [...]
<span class="text-dark text-truncate d-inline-block" style=max-width:18rem>Naming Operators in a Streams DSL application</span></a></div><div class="ms-auto d-flex flex-column align-items-end"><a class="btn pager-btn rounded-3 fw-semibold py-2 px-3 d-inline-flex align-items-center gap-2" style=min-width:12rem href=/42/streams/developer-guide/testing/ rel=next aria-label="Next: Testing a Streams Application"><span class="fw-semibold text-dark">Next:</span>
<span class="text-dark text-truncate d-inline-block text-end" style=max-width:18rem>Testing a Streams Application
</span><span class="fw-semibold text-dark">›</span></a></div></nav></div></main></div></div><footer class="td-footer d-print-none"><div class=container-fluid><div class="row align-items-center"><div class="col-12 col-md-3 text-center text-md-start"><div class=td-footer__social-icons><a href=/community/contact/ target=_blank rel=noopener aria-label=Contact class=td-footer__social-link><i class="fa fa-envelope"></i>
diff --git a/42/streams/developer-guide/dsl-api/index.html b/42/streams/developer-guide/dsl-api/index.html
index 13e66c4b10..ebbe72c5ae 100644
--- a/42/streams/developer-guide/dsl-api/index.html
+++ b/42/streams/developer-guide/dsl-api/index.html
@@ -1,8 +1,8 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=robots content="index, follow"><link rel=icon type=image/png sizes=32x32 href=/images/apache.png><link rel=icon type=image/png sizes=16x16 href=/images/apache.png><link rel="shortcut icon" href=/images/apache.png><link rel=apple-touch-icon sizes=180x180 href=/images/apache.png><title>St [...]
<meta name=description content="The Kafka Streams DSL (Domain Specific Language) is built on top of the Streams Processor API. It is recommended for most users, especially beginners. Most data processing operations can be expressed in just a few lines of DSL code.
* Aggregating * Joining * Join co-partitioning requirements * KStream-KStream Join * KTable-KTable Equi-Join * KTable-KTable Foreign-Key Join * KStream-KTable Join * KStream-GlobalKTable Join * Windowing * Hopping time windows * Tumbling time windows * Sliding time windows * Session Windows * Window Final Results * Applying processors (Processor API integration) * Transformers removal and migration to processors Naming Operators in a Streams DSL application Controlling KTable update rate [...]
-* Aggregating * Joining * Join co-partitioning requirements * KStream-KStream Join * KTable-KTable Equi-Join * KTable-KTable Foreign-Key Join * KStream-KTable Join * KStream-GlobalKTable Join * Windowing * Hopping time windows * Tumbling time windows * Sliding time windows * Session Windows * Window Final Results * Applying processors (Processor API integration) * Transformers removal and migration to processors Naming Operators in a Streams DSL application Controlling KTable update rate [...]
-* Aggregating * Joining * Join co-partitioning requirements * KStream-KStream Join * KTable-KTable Equi-Join * KTable-KTable Foreign-Key Join * KStream-KTable Join * KStream-GlobalKTable Join * Windowing * Hopping time windows * Tumbling time windows * Sliding time windows * Session Windows * Window Final Results * Applying processors (Processor API integration) * Transformers removal and migration to processors Naming Operators in a Streams DSL application Controlling KTable update rate [...]
+* Aggregating * Joining * Join co-partitioning requirements * KStream-KStream Join * KTable-KTable Equi-Join * KTable-KTable Foreign-Key Join * KStream-KTable Join * KStream-GlobalKTable Join * Windowing * Hopping time windows * Tumbling time windows * Sliding time windows * Session Windows * Window Final Results * Applying processors (Processor API integration) * Transformers removal and migration to processors Naming Operators in a Streams DSL application Controlling KTable update rate [...]
+* Aggregating * Joining * Join co-partitioning requirements * KStream-KStream Join * KTable-KTable Equi-Join * KTable-KTable Foreign-Key Join * KStream-KTable Join * KStream-GlobalKTable Join * Windowing * Hopping time windows * Tumbling time windows * Sliding time windows * Session Windows * Window Final Results * Applying processors (Processor API integration) * Transformers removal and migration to processors Naming Operators in a Streams DSL application Controlling KTable update rate [...]
* Aggregating * Joining * Join co-partitioning requirements * KStream-KStream Join * KTable-KTable Equi-Join * KTable-KTable Foreign-Key Join * KStream-KTable Join * KStream-GlobalKTable Join * Windowing * Hopping time windows * Tumbling time windows * Sliding time windows * Session Windows * Window Final Results * Applying processors (Processor API integration) * Transformers removal and migration to processors Naming Operators in a Streams DSL application Controlling KTable update rate [...]
<span></span>
<span></span></div></button>
@@ -1270,9 +1270,9 @@ stream.to("my-stream-output-topic", Produced.with(Serdes.String(), Ser
</code></pre><p><strong>Causes data re-partitioning if any of the following conditions is true:</strong></p><ol><li>If the output topic has a different number of partitions than the stream/table.</li><li>If the <code>KStream</code> was marked for re-partitioning.</li><li>If you provide a custom <code>StreamPartitioner</code> to explicitly control how to distribute the output records across the partitions of the output topic.</li><li>If the key of an output record is <code>null</code>.</l [...]
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams-scala_2.13</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
-</code></pre><p>To use the library compiled against Scala 2.12 replace the <code>artifactId</code> with <code>kafka-streams-scala_2.12</code>.</p><p>When using SBT then you can reference the correct library using the following:</p><pre><code>libraryDependencies += "org.apache.kafka" %% "kafka-streams-scala" % "4.2.0"
+</code></pre><p>To use the library compiled against Scala 2.12 replace the <code>artifactId</code> with <code>kafka-streams-scala_2.12</code>.</p><p>When using SBT then you can reference the correct library using the following:</p><pre><code>libraryDependencies += "org.apache.kafka" %% "kafka-streams-scala" % "4.2.2"
</code></pre><h2 id=sample-usage>Sample Usage<a class=td-heading-self-link href=#sample-usage aria-label="Heading self-link"></a></h2><p>The library works by wrapping the original Java abstractions of Kafka Streams within a Scala wrapper object and then using implicit conversions between them. All the Scala abstractions are named identically as the corresponding Java abstraction, but they reside in a different package of the library e.g. the Scala class <code>org.apache.kafka.streams.sca [...]
import java.util.Properties
@@ -1362,7 +1362,7 @@ val clicksPerRegion: KTable[String, Long] =
// Write the (continuously updating) results to the output topic.
clicksPerRegion.toStream.to(outputTopic)
-</code></pre><p>A complete example of user-defined Serdes can be found in a test class within the library.</p><ul><li><a href=/documentation>Documentation</a></li><li><a href=/documentation/streams>Kafka Streams</a></li><li><a href=/documentation/streams/developer-guide/>Developer Guide</a></li></ul><div class=td-page-meta__lastmod>Last modified February 16, 2026: <a href=https://github.com/apache/kafka-site//commit/956020bebdb052aacfe7eef1c5421855c78639ee>Add 4.2 documentation and javad [...]
+</code></pre><p>A complete example of user-defined Serdes can be found in a test class within the library.</p><ul><li><a href=/documentation>Documentation</a></li><li><a href=/documentation/streams>Kafka Streams</a></li><li><a href=/documentation/streams/developer-guide/>Developer Guide</a></li></ul><div class=td-page-meta__lastmod>Last modified September 29, 2026: <a href=https://github.com/apache/kafka-site//commit/aa5331bd90662a8bd38aa6afc1b3a8d7739e0123>MINOR: Updating versions for 4 [...]
<span class="text-dark text-truncate d-inline-block" style=max-width:18rem>Configuring a Streams Application</span></a></div><div class="ms-auto d-flex flex-column align-items-end"><a class="btn pager-btn rounded-3 fw-semibold py-2 px-3 d-inline-flex align-items-center gap-2" style=min-width:12rem href=/42/streams/developer-guide/processor-api/ rel=next aria-label="Next: Processor API"><span class="fw-semibold text-dark">Next:</span>
<span class="text-dark text-truncate d-inline-block text-end" style=max-width:18rem>Processor API
</span><span class="fw-semibold text-dark">›</span></a></div></nav></div></main></div></div><footer class="td-footer d-print-none"><div class=container-fluid><div class="row align-items-center"><div class="col-12 col-md-3 text-center text-md-start"><div class=td-footer__social-icons><a href=/community/contact/ target=_blank rel=noopener aria-label=Contact class=td-footer__social-link><i class="fa fa-envelope"></i>
diff --git a/42/streams/developer-guide/index.xml b/42/streams/developer-guide/index.xml
index 638d5b3129..885df67554 100644
--- a/42/streams/developer-guide/index.xml
+++ b/42/streams/developer-guide/index.xml
@@ -9,7 +9,7 @@ Overview The Processor API can be used to implement both stateless as well as st
At the DSL layer, there are operators. A single DSL operator may compile down to multiple Processors and State Stores, and if required repartition topics. But with the Kafka Streams DSL, all these names are generated for you.</description></item><item><title>Data Types and Serialization</title><link>https://kafka.apache.org/42/streams/developer-guide/datatypes/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kafka.apache.org/42/streams/developer-guide/datatypes/</gu [...]
You can provide Serdes by using either of these methods, but you must use at least one:
By setting default Serdes in the java.util.Properties config instance. By specifying explicit Serdes when calling the appropriate API methods, thus overriding the defaults.</description></item><item><title>Testing a Streams Application</title><link>https://kafka.apache.org/42/streams/developer-guide/testing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kafka.apache.org/42/streams/developer-guide/testing/</guid><description>Testing Kafka Streams Importing the test [...]
-&lt;dependency&gt; &lt;groupId&gt;org.apache.kafka&lt;/groupId&gt; &lt;artifactId&gt;kafka-streams-test-utils&lt;/artifactId&gt; &lt;version&gt;4.2.0&lt;/version&gt; &lt;scope&gt;test&lt;/scope&gt; &lt;/dependency&gt; Testing a Streams application The test-utils package provides a TopologyTestDriver that can be used pipe data through a Topology that is either assembled manually using Processor API or via the [...]
+&lt;dependency&gt; &lt;groupId&gt;org.apache.kafka&lt;/groupId&gt; &lt;artifactId&gt;kafka-streams-test-utils&lt;/artifactId&gt; &lt;version&gt;4.2.2&lt;/version&gt; &lt;scope&gt;test&lt;/scope&gt; &lt;/dependency&gt; Testing a Streams application The test-utils package provides a TopologyTestDriver that can be used pipe data through a Topology that is either assembled manually using Processor API or via the [...]
The full state of your application is typically split across many distributed instances of your application, and across many state stores that are managed locally by these application instances.
There are local and remote components to interactively querying the state of your application.
Local state An application instance can query the locally managed portion of the state and directly query its own local state stores.</description></item><item><title>Memory Management</title><link>https://kafka.apache.org/42/streams/developer-guide/memory-mgmt/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kafka.apache.org/42/streams/developer-guide/memory-mgmt/</guid><description>You can specify the total memory (RAM) size used for internal caching and compactin [...]
diff --git a/42/streams/developer-guide/testing/index.html b/42/streams/developer-guide/testing/index.html
index 7b4143de05..d83aef8c74 100644
--- a/42/streams/developer-guide/testing/index.html
+++ b/42/streams/developer-guide/testing/index.html
@@ -1,9 +1,9 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=robots content="index, follow"><link rel=icon type=image/png sizes=32x32 href=/images/apache.png><link rel=icon type=image/png sizes=16x16 href=/images/apache.png><link rel="shortcut icon" href=/images/apache.png><link rel=apple-touch-icon sizes=180x180 href=/images/apache.png><title>Te [...]
<meta name=description content="Testing Kafka Streams Importing the test utilities To test a Kafka Streams application, Kafka provides a test-utils artifact that can be added as regular dependency to your test code base. Example pom.xml snippet when using Maven:
-<dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-streams-test-utils</artifactId> <version>4.2.0</version> <scope>test</scope> </dependency> Testing a Streams application The test-utils package provides a TopologyTestDriver that can be used pipe data through a Topology that is either assembled manually using Processor API or via the DSL using StreamsBuilder."><meta property="og:title" content="Testing a Streams Application"><meta property="og:description" content="Testin [...]
-<dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-streams-test-utils</artifactId> <version>4.2.0</version> <scope>test</scope> </dependency> Testing a Streams application The test-utils package provides a TopologyTestDriver that can be used pipe data through a Topology that is either assembled manually using Processor API or via the DSL using StreamsBuilder."><meta property="og:type" content="article"><meta property="og:url" content="https://kafka.apache.org/42/streams/d [...]
-<dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-streams-test-utils</artifactId> <version>4.2.0</version> <scope>test</scope> </dependency> Testing a Streams application The test-utils package provides a TopologyTestDriver that can be used pipe data through a Topology that is either assembled manually using Processor API or via the DSL using StreamsBuilder."><meta itemprop=dateModified content="2026-02-16T16:57:36+00:00"><meta itemprop=wordCount content="1212"><meta ite [...]
-<dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-streams-test-utils</artifactId> <version>4.2.0</version> <scope>test</scope> </dependency> Testing a Streams application The test-utils package provides a TopologyTestDriver that can be used pipe data through a Topology that is either assembled manually using Processor API or via the DSL using StreamsBuilder."><link rel=preload href=/scss/main.min.69b0f43de0cd12cd158eaf47ea571b3800d97c1ef9ffc85787b2bcbb7d159d4a.css as=sty [...]
+<dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-streams-test-utils</artifactId> <version>4.2.2</version> <scope>test</scope> </dependency> Testing a Streams application The test-utils package provides a TopologyTestDriver that can be used pipe data through a Topology that is either assembled manually using Processor API or via the DSL using StreamsBuilder."><meta property="og:title" content="Testing a Streams Application"><meta property="og:description" content="Testin [...]
+<dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-streams-test-utils</artifactId> <version>4.2.2</version> <scope>test</scope> </dependency> Testing a Streams application The test-utils package provides a TopologyTestDriver that can be used pipe data through a Topology that is either assembled manually using Processor API or via the DSL using StreamsBuilder."><meta property="og:type" content="article"><meta property="og:url" content="https://kafka.apache.org/42/streams/d [...]
+<dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-streams-test-utils</artifactId> <version>4.2.2</version> <scope>test</scope> </dependency> Testing a Streams application The test-utils package provides a TopologyTestDriver that can be used pipe data through a Topology that is either assembled manually using Processor API or via the DSL using StreamsBuilder."><meta itemprop=dateModified content="2026-09-29T13:03:18+01:00"><meta itemprop=wordCount content="1212"><meta ite [...]
+<dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-streams-test-utils</artifactId> <version>4.2.2</version> <scope>test</scope> </dependency> Testing a Streams application The test-utils package provides a TopologyTestDriver that can be used pipe data through a Topology that is either assembled manually using Processor API or via the DSL using StreamsBuilder."><link rel=preload href=/scss/main.min.69b0f43de0cd12cd158eaf47ea571b3800d97c1ef9ffc85787b2bcbb7d159d4a.css as=sty [...]
<span></span>
<span></span></div></button>
<a class="navbar-brand order-1 order-lg-0 mx-auto mx-lg-0" href=/><img src=/logos/kafka_logo--simple.png alt="Apache Kafka" class=navbar-logo-img></a><div class="order-2 d-lg-none" style=width:48px></div><div class="collapse navbar-collapse order-3 order-lg-1" id=main_navbar><ul class="navbar-nav ms-auto"><li class="nav-item dropdown"><a class="nav-link dropdown-toggle" href=/43/getting-started/ aria-haspopup=true aria-expanded=false>Get Started</a><ul class=dropdown-menu><li><a class=dr [...]
@@ -96,7 +96,7 @@ For up-to-date documentation, see the
<a href=/43/ target=_blank>latest version</a>.</p></div><nav aria-label=breadcrumb class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=/42/>AK 4.2.X</a></li><li class=breadcrumb-item><a href=/42/streams/>Kafka Streams</a></li><li class=breadcrumb-item><a href=/42/streams/developer-guide/>Streams Developer Guide</a></li><li class="breadcrumb-item active" aria-current=page>Testing a Streams Application</li></ol></nav><div class=td-content><h1>Testing a Streams Appli [...]
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams-test-utils</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
<scope>test</scope>
</dependency>
</code></pre><h1 id=testing-a-streams-application>Testing a Streams application<a class=td-heading-self-link href=#testing-a-streams-application aria-label="Heading self-link"></a></h1><p>The test-utils package provides a <code>TopologyTestDriver</code> that can be used pipe data through a <code>Topology</code> that is either assembled manually using Processor API or via the DSL using <code>StreamsBuilder</code>. The test driver simulates the library runtime that continuously fetches rec [...]
@@ -294,7 +294,7 @@ final PunctuationType type = capturedPunctuator.getType();
final boolean cancelled = capturedPunctuator.cancelled();
final Punctuator punctuator = capturedPunctuator.getPunctuator();
punctuator.punctuate(/*timestamp*/ 0L);
-</code></pre><p>If you need to write tests involving automatic firing of scheduled punctuators, we recommend creating a simple topology with your processor and using the <a href=testing.html#testing-topologytestdriver><code>TopologyTestDriver</code></a>.</p><ul><li><a href=/documentation>Documentation</a></li><li><a href=/documentation/streams>Kafka Streams</a></li><li><a href=/documentation/streams/developer-guide/>Developer Guide</a></li></ul><div class=td-page-meta__lastmod>Last modif [...]
+</code></pre><p>If you need to write tests involving automatic firing of scheduled punctuators, we recommend creating a simple topology with your processor and using the <a href=testing.html#testing-topologytestdriver><code>TopologyTestDriver</code></a>.</p><ul><li><a href=/documentation>Documentation</a></li><li><a href=/documentation/streams>Kafka Streams</a></li><li><a href=/documentation/streams/developer-guide/>Developer Guide</a></li></ul><div class=td-page-meta__lastmod>Last modif [...]
<span class="text-dark text-truncate d-inline-block" style=max-width:18rem>Data Types and Serialization</span></a></div><div class="ms-auto d-flex flex-column align-items-end"><a class="btn pager-btn rounded-3 fw-semibold py-2 px-3 d-inline-flex align-items-center gap-2" style=min-width:12rem href=/42/streams/developer-guide/interactive-queries/ rel=next aria-label="Next: Interactive Queries"><span class="fw-semibold text-dark">Next:</span>
<span class="text-dark text-truncate d-inline-block text-end" style=max-width:18rem>Interactive Queries
</span><span class="fw-semibold text-dark">›</span></a></div></nav></div></main></div></div><footer class="td-footer d-print-none"><div class=container-fluid><div class="row align-items-center"><div class="col-12 col-md-3 text-center text-md-start"><div class=td-footer__social-icons><a href=/community/contact/ target=_blank rel=noopener aria-label=Contact class=td-footer__social-link><i class="fa fa-envelope"></i>
diff --git a/42/streams/developer-guide/write-streams-app/index.html b/42/streams/developer-guide/write-streams-app/index.html
index 09f051b3e1..edded86fb2 100644
--- a/42/streams/developer-guide/write-streams-app/index.html
+++ b/42/streams/developer-guide/write-streams-app/index.html
@@ -3,9 +3,9 @@
You can define the processor topology with the Kafka Streams APIs:
Kafka Streams DSL A high-level API that provides the most common data transformation operations such as map, filter, join, and aggregations out of the box."><meta property="og:title" content="Writing a Streams Application"><meta property="og:description" content="Any Java or Scala application that makes use of the Kafka Streams library is considered a Kafka Streams application. The computational logic of a Kafka Streams application is defined as a processor topology, which is a graph of [...]
You can define the processor topology with the Kafka Streams APIs:
-Kafka Streams DSL A high-level API that provides the most common data transformation operations such as map, filter, join, and aggregations out of the box."><meta property="og:type" content="article"><meta property="og:url" content="https://kafka.apache.org/42/streams/developer-guide/write-streams-app/"><meta property="article:section" content="42"><meta property="article:modified_time" content="2026-02-16T16:57:36+00:00"><meta itemprop=name content="Writing a Streams Application"><meta [...]
+Kafka Streams DSL A high-level API that provides the most common data transformation operations such as map, filter, join, and aggregations out of the box."><meta property="og:type" content="article"><meta property="og:url" content="https://kafka.apache.org/42/streams/developer-guide/write-streams-app/"><meta property="article:section" content="42"><meta property="article:modified_time" content="2026-09-29T13:03:18+01:00"><meta itemprop=name content="Writing a Streams Application"><meta [...]
You can define the processor topology with the Kafka Streams APIs:
-Kafka Streams DSL A high-level API that provides the most common data transformation operations such as map, filter, join, and aggregations out of the box."><meta itemprop=dateModified content="2026-02-16T16:57:36+00:00"><meta itemprop=wordCount content="785"><meta itemprop=keywords content="kafka,docs,"><meta name=twitter:card content="summary"><meta name=twitter:title content="Writing a Streams Application"><meta name=twitter:description content="Any Java or Scala application that make [...]
+Kafka Streams DSL A high-level API that provides the most common data transformation operations such as map, filter, join, and aggregations out of the box."><meta itemprop=dateModified content="2026-09-29T13:03:18+01:00"><meta itemprop=wordCount content="785"><meta itemprop=keywords content="kafka,docs,"><meta name=twitter:card content="summary"><meta name=twitter:title content="Writing a Streams Application"><meta name=twitter:description content="Any Java or Scala application that make [...]
You can define the processor topology with the Kafka Streams APIs:
Kafka Streams DSL A high-level API that provides the most common data transformation operations such as map, filter, join, and aggregations out of the box."><link rel=preload href=/scss/main.min.69b0f43de0cd12cd158eaf47ea571b3800d97c1ef9ffc85787b2bcbb7d159d4a.css as=style integrity="sha256-abD0PeDNEs0Vjq9H6lcbOADZfB75/8hXh7K8u30VnUo=" crossorigin=anonymous><link href=/scss/main.min.69b0f43de0cd12cd158eaf47ea571b3800d97c1ef9ffc85787b2bcbb7d159d4a.css rel=stylesheet integrity="sha256-abD0P [...]
<span></span>
@@ -100,20 +100,20 @@ For up-to-date documentation, see the
<a href=/43/ target=_blank>latest version</a>.</p></div><nav aria-label=breadcrumb class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=/42/>AK 4.2.X</a></li><li class=breadcrumb-item><a href=/42/streams/>Kafka Streams</a></li><li class=breadcrumb-item><a href=/42/streams/developer-guide/>Streams Developer Guide</a></li><li class="breadcrumb-item active" aria-current=page>Writing a Streams Application</li></ol></nav><div class=td-content><h1>Writing a Streams Appli [...]
A high-level API that provides the most common data transformation operations such as <code>map</code>, <code>filter</code>, <code>join</code>, and <code>aggregations</code> out of the box. The DSL is the recommended starting point for developers new to Kafka Streams, and should cover many use cases and stream processing needs. If you’re writing a Scala application then you can use the <a href=dsl-api.html#scala-dsl>Kafka Streams DSL for Scala</a> library which removes much of the [...]
<a href=processor-api.html#streams-developer-guide-processor-api>Processor API</a>
-A low-level API that lets you add and connect processors as well as interact directly with state stores. The Processor API provides you with even more flexibility than the DSL but at the expense of requiring more manual work on the side of the application developer (e.g., more lines of code).</p><h1 id=libraries-and-maven-artifacts>Libraries and Maven artifacts<a class=td-heading-self-link href=#libraries-and-maven-artifacts aria-label="Heading self-link"></a></h1><p>This section lists t [...]
+A low-level API that lets you add and connect processors as well as interact directly with state stores. The Processor API provides you with even more flexibility than the DSL but at the expense of requiring more manual work on the side of the application developer (e.g., more lines of code).</p><h1 id=libraries-and-maven-artifacts>Libraries and Maven artifacts<a class=td-heading-self-link href=#libraries-and-maven-artifacts aria-label="Heading self-link"></a></h1><p>This section lists t [...]
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams-scala_2.13</artifactId>
- <version>4.2.0</version>
+ <version>4.2.2</version>
</dependency>
</code></pre><h1 id=using-kafka-streams-within-your-application-code>Using Kafka Streams within your application code<a class=td-heading-self-link href=#using-kafka-streams-within-your-application-code aria-label="Heading self-link"></a></h1><p>You can call Kafka Streams from anywhere in your application code, but usually these calls are made within the <code>main()</code> method of your application, or some variant thereof. The basic elements of defining a processing topology within you [...]
import org.apache.kafka.streams.kstream.StreamsBuilder;
@@ -147,7 +147,7 @@ streams.close();
</code></pre><p>To allow your application to gracefully shutdown in response to SIGTERM, it is recommended that you add a shutdown hook and call <code>KafkaStreams#close</code>.</p><p>Here is a shutdown hook example in Java:</p><pre><code>// Add shutdown hook to stop the Kafka Streams threads.
// You can optionally provide a timeout to `close`.
Runtime.getRuntime().addShutdownHook(new Thread(streams::close));
-</code></pre><p>After an application is stopped, Kafka Streams will migrate any tasks that had been running in this instance to available remaining instances.</p><h1 id=testing-a-streams-application>Testing a Streams application<a class=td-heading-self-link href=#testing-a-streams-application aria-label="Heading self-link"></a></h1><p>Kafka Streams comes with a <code>test-utils</code> module to help you test your application <a href=testing.html>here</a>.</p><ul><li><a href=/documentatio [...]
+</code></pre><p>After an application is stopped, Kafka Streams will migrate any tasks that had been running in this instance to available remaining instances.</p><h1 id=testing-a-streams-application>Testing a Streams application<a class=td-heading-self-link href=#testing-a-streams-application aria-label="Heading self-link"></a></h1><p>Kafka Streams comes with a <code>test-utils</code> module to help you test your application <a href=testing.html>here</a>.</p><ul><li><a href=/documentatio [...]
<span class="text-dark text-truncate d-inline-block text-end" style=max-width:18rem>Configuring a Streams Application
</span><span class="fw-semibold text-dark">›</span></a></div></nav></div></main></div></div><footer class="td-footer d-print-none"><div class=container-fluid><div class="row align-items-center"><div class="col-12 col-md-3 text-center text-md-start"><div class=td-footer__social-icons><a href=/community/contact/ target=_blank rel=noopener aria-label=Contact class=td-footer__social-link><i class="fa fa-envelope"></i>
</a><a href=https://twitter.com/apachekafka target=_blank rel=noopener aria-label=Twitter class=td-footer__social-link><i class="fab fa-twitter"></i>
diff --git a/42/streams/quickstart/index.html b/42/streams/quickstart/index.html
index 7c602973f4..c4d2c67960 100644
--- a/42/streams/quickstart/index.html
+++ b/42/streams/quickstart/index.html
@@ -1,8 +1,8 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=robots content="index, follow"><link rel=icon type=image/png sizes=32x32 href=/images/apache.png><link rel=icon type=image/png sizes=16x16 href=/images/apache.png><link rel="shortcut icon" href=/images/apache.png><link rel=apple-touch-icon sizes=180x180 href=/images/apache.png><title>Qu [...]
<meta name=description content="Run Kafka Streams Demo Application This tutorial assumes you are starting fresh and have no existing Kafka data. However, if you have already started Kafka, feel free to skip the first two steps.
Kafka Streams is a client library for building mission-critical real-time applications and microservices, where the input and/or output data is stored in Kafka clusters. Kafka Streams combines the simplicity of writing and deploying standard Java and Scala applications on the client side with the benefits of Kafka’s server-side cluster technology to make these applications highly scalable, elastic, fault-tolerant, distributed, and much more."><meta property="og:title" content="Quick Star [...]
-Kafka Streams is a client library for building mission-critical real-time applications and microservices, where the input and/or output data is stored in Kafka clusters. Kafka Streams combines the simplicity of writing and deploying standard Java and Scala applications on the client side with the benefits of Kafka’s server-side cluster technology to make these applications highly scalable, elastic, fault-tolerant, distributed, and much more."><meta property="og:type" content="artic [...]
-Kafka Streams is a client library for building mission-critical real-time applications and microservices, where the input and/or output data is stored in Kafka clusters. Kafka Streams combines the simplicity of writing and deploying standard Java and Scala applications on the client side with the benefits of Kafka’s server-side cluster technology to make these applications highly scalable, elastic, fault-tolerant, distributed, and much more."><meta itemprop=dateModified content="20 [...]
+Kafka Streams is a client library for building mission-critical real-time applications and microservices, where the input and/or output data is stored in Kafka clusters. Kafka Streams combines the simplicity of writing and deploying standard Java and Scala applications on the client side with the benefits of Kafka’s server-side cluster technology to make these applications highly scalable, elastic, fault-tolerant, distributed, and much more."><meta property="og:type" content="artic [...]
+Kafka Streams is a client library for building mission-critical real-time applications and microservices, where the input and/or output data is stored in Kafka clusters. Kafka Streams combines the simplicity of writing and deploying standard Java and Scala applications on the client side with the benefits of Kafka’s server-side cluster technology to make these applications highly scalable, elastic, fault-tolerant, distributed, and much more."><meta itemprop=dateModified content="20 [...]
Kafka Streams is a client library for building mission-critical real-time applications and microservices, where the input and/or output data is stored in Kafka clusters. Kafka Streams combines the simplicity of writing and deploying standard Java and Scala applications on the client side with the benefits of Kafka’s server-side cluster technology to make these applications highly scalable, elastic, fault-tolerant, distributed, and much more."><link rel=preload href=/scss/main.min.6 [...]
<span></span>
<span></span></div></button>
@@ -117,8 +117,8 @@ KTable<String, Long> wordCounts = textLines
// Store the running counts as a changelog stream to the output topic.
wordCounts.toStream().to("streams-wordcount-output", Produced.with(Serdes.String(), Serdes.Long()));
-</code></pre><p>It implements the WordCount algorithm, which computes a word occurrence histogram from the input text. However, unlike other WordCount examples you might have seen before that operate on bounded data, the WordCount demo application behaves slightly differently because it is designed to operate on an <strong>infinite, unbounded stream</strong> of data. Similar to the bounded variant, it is a stateful algorithm that tracks and updates the counts of words. However, since it [...]
-$ cd kafka_2.13-4.2.0
+</code></pre><p>It implements the WordCount algorithm, which computes a word occurrence histogram from the input text. However, unlike other WordCount examples you might have seen before that operate on bounded data, the WordCount demo application behaves slightly differently because it is designed to operate on an <strong>infinite, unbounded stream</strong> of data. Similar to the bounded variant, it is a stateful algorithm that tracks and updates the counts of words. However, since it [...]
+$ cd kafka_2.13-4.2.2
</code></pre><h3 id=step-2-start-the-kafka-server>Step 2: Start the Kafka server<a class=td-heading-self-link href=#step-2-start-the-kafka-server aria-label="Heading self-link"></a></h3><p>Generate a Cluster UUID</p><pre><code>$ KAFKA_CLUSTER_ID="$(bin/kafka-storage.sh random-uuid)"
</code></pre><p>Format Log Directories</p><pre><code>$ bin/kafka-storage.sh format --standalone -t $KAFKA_CLUSTER_ID -c config/server.properties
</code></pre><p>Start the Kafka Server</p><pre><code>$ bin/kafka-server-start.sh config/server.properties
@@ -208,7 +208,7 @@ streams 2
join 1
kafka 3
summit 1
-</code></pre><p>As one can see, outputs of the Wordcount application is actually a continuous stream of updates, where each output record (i.e. each line in the original output above) is an updated count of a single word, aka record key such as “kafka”. For multiple records with the same key, each later record is an update of the previous one.</p><p>The two diagrams below illustrate what is essentially happening behind the scenes. The first column shows the evolution of the c [...]
+</code></pre><p>As one can see, outputs of the Wordcount application is actually a continuous stream of updates, where each output record (i.e. each line in the original output above) is an updated count of a single word, aka record key such as “kafka”. For multiple records with the same key, each later record is an update of the previous one.</p><p>The two diagrams below illustrate what is essentially happening behind the scenes. The first column shows the evolution of the c [...]
<span class="text-dark text-truncate d-inline-block" style=max-width:18rem>Introduction</span></a></div><div class="ms-auto d-flex flex-column align-items-end"><a class="btn pager-btn rounded-3 fw-semibold py-2 px-3 d-inline-flex align-items-center gap-2" style=min-width:12rem href=/42/streams/tutorial/ rel=next aria-label="Next: Write a streams app"><span class="fw-semibold text-dark">Next:</span>
<span class="text-dark text-truncate d-inline-block text-end" style=max-width:18rem>Write a streams app
</span><span class="fw-semibold text-dark">›</span></a></div></nav></div></main></div></div><footer class="td-footer d-print-none"><div class=container-fluid><div class="row align-items-center"><div class="col-12 col-md-3 text-center text-md-start"><div class=td-footer__social-icons><a href=/community/contact/ target=_blank rel=noopener aria-label=Contact class=td-footer__social-link><i class="fa fa-envelope"></i>
diff --git a/42/streams/tutorial/index.html b/42/streams/tutorial/index.html
index 325b0f56cf..f3725ad8b0 100644
--- a/42/streams/tutorial/index.html
+++ b/42/streams/tutorial/index.html
@@ -1,8 +1,8 @@
<!doctype html><html itemscope itemtype=http://schema.org/WebPage lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=robots content="index, follow"><link rel=icon type=image/png sizes=32x32 href=/images/apache.png><link rel=icon type=image/png sizes=16x16 href=/images/apache.png><link rel="shortcut icon" href=/images/apache.png><link rel=apple-touch-icon sizes=180x180 href=/images/apache.png><title>Wr [...]
<meta name=description content="Tutorial: Write a Kafka Streams Application In this guide we will start from scratch on setting up your own project to write a stream processing application using Kafka Streams. It is highly recommended to read the quickstart first on how to run a Streams application written in Kafka Streams if you have not done so.
Setting up a Maven Project We are going to use a Kafka Streams Maven Archetype for creating a Streams project structure with the following commands:"><meta property="og:title" content="Write a streams app"><meta property="og:description" content="Tutorial: Write a Kafka Streams Application In this guide we will start from scratch on setting up your own project to write a stream processing application using Kafka Streams. It is highly recommended to read the quickstart first on how to run [...]
-Setting up a Maven Project We are going to use a Kafka Streams Maven Archetype for creating a Streams project structure with the following commands:"><meta property="og:type" content="article"><meta property="og:url" content="https://kafka.apache.org/42/streams/tutorial/"><meta property="article:section" content="42"><meta property="article:modified_time" content="2026-02-16T16:57:36+00:00"><meta itemprop=name content="Write a streams app"><meta itemprop=description content="Tutorial: Wr [...]
-Setting up a Maven Project We are going to use a Kafka Streams Maven Archetype for creating a Streams project structure with the following commands:"><meta itemprop=dateModified content="2026-02-16T16:57:36+00:00"><meta itemprop=wordCount content="2524"><meta itemprop=keywords content="kafka,docs,"><meta name=twitter:card content="summary"><meta name=twitter:title content="Write a streams app"><meta name=twitter:description content="Tutorial: Write a Kafka Streams Application In this gui [...]
+Setting up a Maven Project We are going to use a Kafka Streams Maven Archetype for creating a Streams project structure with the following commands:"><meta property="og:type" content="article"><meta property="og:url" content="https://kafka.apache.org/42/streams/tutorial/"><meta property="article:section" content="42"><meta property="article:modified_time" content="2026-09-29T13:03:18+01:00"><meta itemprop=name content="Write a streams app"><meta itemprop=description content="Tutorial: Wr [...]
+Setting up a Maven Project We are going to use a Kafka Streams Maven Archetype for creating a Streams project structure with the following commands:"><meta itemprop=dateModified content="2026-09-29T13:03:18+01:00"><meta itemprop=wordCount content="2524"><meta itemprop=keywords content="kafka,docs,"><meta name=twitter:card content="summary"><meta name=twitter:title content="Write a streams app"><meta name=twitter:description content="Tutorial: Write a Kafka Streams Application In this gui [...]
Setting up a Maven Project We are going to use a Kafka Streams Maven Archetype for creating a Streams project structure with the following commands:"><link rel=preload href=/scss/main.min.69b0f43de0cd12cd158eaf47ea571b3800d97c1ef9ffc85787b2bcbb7d159d4a.css as=style integrity="sha256-abD0PeDNEs0Vjq9H6lcbOADZfB75/8hXh7K8u30VnUo=" crossorigin=anonymous><link href=/scss/main.min.69b0f43de0cd12cd158eaf47ea571b3800d97c1ef9ffc85787b2bcbb7d159d4a.css rel=stylesheet integrity="sha256-abD0PeDNEs0V [...]
<span></span>
<span></span></div></button>
@@ -96,7 +96,7 @@ For up-to-date documentation, see the
<a href=/43/ target=_blank>latest version</a>.</p></div><nav aria-label=breadcrumb class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=/42/>AK 4.2.X</a></li><li class=breadcrumb-item><a href=/42/streams/>Kafka Streams</a></li><li class="breadcrumb-item active" aria-current=page>Write a streams app</li></ol></nav><div class=td-content><h1>Write a streams app</h1><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-tit [...]
-DarchetypeGroupId=org.apache.kafka \
-DarchetypeArtifactId=streams-quickstart-java \
--DarchetypeVersion=4.2.0 \
+-DarchetypeVersion=4.2.2 \
-DgroupId=streams.examples \
-DartifactId=streams-quickstart \
-Dversion=0.1 \
@@ -371,7 +371,7 @@ public class WordCount {
// ... same as Pipe.java above
}
}
-</code></pre><ul><li><a href=/documentation>Documentation</a></li><li><a href=/documentation/streams>Kafka Streams</a></li></ul><div class=td-page-meta__lastmod>Last modified February 16, 2026: <a href=https://github.com/apache/kafka-site//commit/956020bebdb052aacfe7eef1c5421855c78639ee>Add 4.2 documentation and javadocs (#785) (956020bebd)</a></div></div><div class="td-page-meta mb-3 mt-4 d-print-none"><nav class="d-flex justify-content-between align-items-center gap-3"><div class="d-fl [...]
+</code></pre><ul><li><a href=/documentation>Documentation</a></li><li><a href=/documentation/streams>Kafka Streams</a></li></ul><div class=td-page-meta__lastmod>Last modified September 29, 2026: <a href=https://github.com/apache/kafka-site//commit/aa5331bd90662a8bd38aa6afc1b3a8d7739e0123>MINOR: Updating versions for 4.2.2 release (#918) (aa5331bd90)</a></div></div><div class="td-page-meta mb-3 mt-4 d-print-none"><nav class="d-flex justify-content-between align-items-center gap-3"><div cl [...]
<span class="text-dark text-truncate d-inline-block" style=max-width:18rem>Quick Start</span></a></div><div class="ms-auto d-flex flex-column align-items-end"><a class="btn pager-btn rounded-3 fw-semibold py-2 px-3 d-inline-flex align-items-center gap-2" style=min-width:12rem href=/42/streams/core-concepts/ rel=next aria-label="Next: Core Concepts"><span class="fw-semibold text-dark">Next:</span>
<span class="text-dark text-truncate d-inline-block text-end" style=max-width:18rem>Core Concepts
</span><span class="fw-semibold text-dark">›</span></a></div></nav></div></main></div></div><footer class="td-footer d-print-none"><div class=container-fluid><div class="row align-items-center"><div class="col-12 col-md-3 text-center text-md-start"><div class=td-footer__social-icons><a href=/community/contact/ target=_blank rel=noopener aria-label=Contact class=td-footer__social-link><i class="fa fa-envelope"></i>
diff --git a/index.xml b/index.xml
index 4c0b17a8ea..b3a2aa4a18 100644
--- a/index.xml
+++ b/index.xml
@@ -1798,7 +1798,7 @@ All Kafka rate metrics have a corresponding cumulative count metric with suffix
&lt;dependency&gt; &lt;groupId&gt;org.apache.kafka&lt;/groupId&gt; &lt;artifactId&gt;kafka-streams-test-utils&lt;/artifactId&gt; &lt;version&gt;3.9.1&lt;/version&gt; &lt;scope&gt;test&lt;/scope&gt; &lt;/dependency&gt; Testing a Streams application The test-utils package provides a TopologyTestDriver that can be used pipe data through a Topology that is either assembled manually using Processor API or via the [...]
&lt;dependency&gt; &lt;groupId&gt;org.apache.kafka&lt;/groupId&gt; &lt;artifactId&gt;kafka-streams-test-utils&lt;/artifactId&gt; &lt;version&gt;4.0.2&lt;/version&gt; &lt;scope&gt;test&lt;/scope&gt; &lt;/dependency&gt; Testing a Streams application The test-utils package provides a TopologyTestDriver that can be used pipe data through a Topology that is either assembled manually using Processor API or via the [...]
&lt;dependency&gt; &lt;groupId&gt;org.apache.kafka&lt;/groupId&gt; &lt;artifactId&gt;kafka-streams-test-utils&lt;/artifactId&gt; &lt;version&gt;4.1.2&lt;/version&gt; &lt;scope&gt;test&lt;/scope&gt; &lt;/dependency&gt; Testing a Streams application The test-utils package provides a TopologyTestDriver that can be used pipe data through a Topology that is either assembled manually using Processor API or via the [...]
-&lt;dependency&gt; &lt;groupId&gt;org.apache.kafka&lt;/groupId&gt; &lt;artifactId&gt;kafka-streams-test-utils&lt;/artifactId&gt; &lt;version&gt;4.2.0&lt;/version&gt; &lt;scope&gt;test&lt;/scope&gt; &lt;/dependency&gt; Testing a Streams application The test-utils package provides a TopologyTestDriver that can be used pipe data through a Topology that is either assembled manually using Processor API or via the [...]
+&lt;dependency&gt; &lt;groupId&gt;org.apache.kafka&lt;/groupId&gt; &lt;artifactId&gt;kafka-streams-test-utils&lt;/artifactId&gt; &lt;version&gt;4.2.2&lt;/version&gt; &lt;scope&gt;test&lt;/scope&gt; &lt;/dependency&gt; Testing a Streams application The test-utils package provides a TopologyTestDriver that can be used pipe data through a Topology that is either assembled manually using Processor API or via the [...]
&lt;dependency&gt; &lt;groupId&gt;org.apache.kafka&lt;/groupId&gt; &lt;artifactId&gt;kafka-streams-test-utils&lt;/artifactId&gt; &lt;version&gt;4.3.1&lt;/version&gt; &lt;scope&gt;test&lt;/scope&gt; &lt;/dependency&gt; Testing a Streams application The test-utils package provides a TopologyTestDriver that can be used pipe data through a Topology that is either assembled manually using Processor API or via the [...]
Operationalizing ZooKeeper Operationally, we do the following for a healthy ZooKeeper installation:
Redundancy in the physical/hardware/network layout: try not to put them all in the same rack, decent (but don&rsquo;t go nuts) hardware, try to keep redundant power and network paths, etc.</description></item><item><title>ZooKeeper</title><link>https://kafka.apache.org/0101/operations/zookeeper/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kafka.apache.org/0101/operations/zookeeper/</guid><description>Stable version The current stable branch is 3.4 and the la [...]
diff --git a/sitemap.xml b/sitemap.xml
index 4cb892d102..c75b297566 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>https://kafka.apache.org/0100/implementation/api-design/</loc><lastmod>2025-12-19T18:23:57-08:00</lastmod></url><url><loc>https://kafka.apache.org/0101/implementation/api-design/</loc><lastmod>2025-12-19T18:23:57-08:00</lastmod></url><url><loc>https://kafka.apache.org/0102/implementation/api-design/</loc><lastmod>2025-12-1 [...]
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>https://kafka.apache.org/0100/implementation/api-design/</loc><lastmod>2025-12-19T18:23:57-08:00</lastmod></url><url><loc>https://kafka.apache.org/0101/implementation/api-design/</loc><lastmod>2025-12-19T18:23:57-08:00</lastmod></url><url><loc>https://kafka.apache.org/0102/implementation/api-design/</loc><lastmod>2025-12-1 [...]
\ No newline at end of file
diff --git a/tags/docs/index.xml b/tags/docs/index.xml
index eeca393368..d851369ab2 100644
--- a/tags/docs/index.xml
+++ b/tags/docs/index.xml
@@ -1828,7 +1828,7 @@ All Kafka rate metrics have a corresponding cumulative count metric with suffix
&lt;dependency&gt; &lt;groupId&gt;org.apache.kafka&lt;/groupId&gt; &lt;artifactId&gt;kafka-streams-test-utils&lt;/artifactId&gt; &lt;version&gt;3.9.1&lt;/version&gt; &lt;scope&gt;test&lt;/scope&gt; &lt;/dependency&gt; Testing a Streams application The test-utils package provides a TopologyTestDriver that can be used pipe data through a Topology that is either assembled manually using Processor API or via the [...]
&lt;dependency&gt; &lt;groupId&gt;org.apache.kafka&lt;/groupId&gt; &lt;artifactId&gt;kafka-streams-test-utils&lt;/artifactId&gt; &lt;version&gt;4.0.2&lt;/version&gt; &lt;scope&gt;test&lt;/scope&gt; &lt;/dependency&gt; Testing a Streams application The test-utils package provides a TopologyTestDriver that can be used pipe data through a Topology that is either assembled manually using Processor API or via the [...]
&lt;dependency&gt; &lt;groupId&gt;org.apache.kafka&lt;/groupId&gt; &lt;artifactId&gt;kafka-streams-test-utils&lt;/artifactId&gt; &lt;version&gt;4.1.2&lt;/version&gt; &lt;scope&gt;test&lt;/scope&gt; &lt;/dependency&gt; Testing a Streams application The test-utils package provides a TopologyTestDriver that can be used pipe data through a Topology that is either assembled manually using Processor API or via the [...]
-&lt;dependency&gt; &lt;groupId&gt;org.apache.kafka&lt;/groupId&gt; &lt;artifactId&gt;kafka-streams-test-utils&lt;/artifactId&gt; &lt;version&gt;4.2.0&lt;/version&gt; &lt;scope&gt;test&lt;/scope&gt; &lt;/dependency&gt; Testing a Streams application The test-utils package provides a TopologyTestDriver that can be used pipe data through a Topology that is either assembled manually using Processor API or via the [...]
+&lt;dependency&gt; &lt;groupId&gt;org.apache.kafka&lt;/groupId&gt; &lt;artifactId&gt;kafka-streams-test-utils&lt;/artifactId&gt; &lt;version&gt;4.2.2&lt;/version&gt; &lt;scope&gt;test&lt;/scope&gt; &lt;/dependency&gt; Testing a Streams application The test-utils package provides a TopologyTestDriver that can be used pipe data through a Topology that is either assembled manually using Processor API or via the [...]
&lt;dependency&gt; &lt;groupId&gt;org.apache.kafka&lt;/groupId&gt; &lt;artifactId&gt;kafka-streams-test-utils&lt;/artifactId&gt; &lt;version&gt;4.3.1&lt;/version&gt; &lt;scope&gt;test&lt;/scope&gt; &lt;/dependency&gt; Testing a Streams application The test-utils package provides a TopologyTestDriver that can be used pipe data through a Topology that is either assembled manually using Processor API or via the [...]
Operationalizing ZooKeeper Operationally, we do the following for a healthy ZooKeeper installation:
Redundancy in the physical/hardware/network layout: try not to put them all in the same rack, decent (but don&rsquo;t go nuts) hardware, try to keep redundant power and network paths, etc.</description></item><item><title>ZooKeeper</title><link>https://kafka.apache.org/0101/operations/zookeeper/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kafka.apache.org/0101/operations/zookeeper/</guid><description>Stable version The current stable branch is 3.4 and the la [...]
diff --git a/tags/kafka/index.xml b/tags/kafka/index.xml
index a6d2ce7251..c26d6ec726 100644
--- a/tags/kafka/index.xml
+++ b/tags/kafka/index.xml
@@ -1828,7 +1828,7 @@ All Kafka rate metrics have a corresponding cumulative count metric with suffix
&lt;dependency&gt; &lt;groupId&gt;org.apache.kafka&lt;/groupId&gt; &lt;artifactId&gt;kafka-streams-test-utils&lt;/artifactId&gt; &lt;version&gt;3.9.1&lt;/version&gt; &lt;scope&gt;test&lt;/scope&gt; &lt;/dependency&gt; Testing a Streams application The test-utils package provides a TopologyTestDriver that can be used pipe data through a Topology that is either assembled manually using Processor API or via the [...]
&lt;dependency&gt; &lt;groupId&gt;org.apache.kafka&lt;/groupId&gt; &lt;artifactId&gt;kafka-streams-test-utils&lt;/artifactId&gt; &lt;version&gt;4.0.2&lt;/version&gt; &lt;scope&gt;test&lt;/scope&gt; &lt;/dependency&gt; Testing a Streams application The test-utils package provides a TopologyTestDriver that can be used pipe data through a Topology that is either assembled manually using Processor API or via the [...]
&lt;dependency&gt; &lt;groupId&gt;org.apache.kafka&lt;/groupId&gt; &lt;artifactId&gt;kafka-streams-test-utils&lt;/artifactId&gt; &lt;version&gt;4.1.2&lt;/version&gt; &lt;scope&gt;test&lt;/scope&gt; &lt;/dependency&gt; Testing a Streams application The test-utils package provides a TopologyTestDriver that can be used pipe data through a Topology that is either assembled manually using Processor API or via the [...]
-&lt;dependency&gt; &lt;groupId&gt;org.apache.kafka&lt;/groupId&gt; &lt;artifactId&gt;kafka-streams-test-utils&lt;/artifactId&gt; &lt;version&gt;4.2.0&lt;/version&gt; &lt;scope&gt;test&lt;/scope&gt; &lt;/dependency&gt; Testing a Streams application The test-utils package provides a TopologyTestDriver that can be used pipe data through a Topology that is either assembled manually using Processor API or via the [...]
+&lt;dependency&gt; &lt;groupId&gt;org.apache.kafka&lt;/groupId&gt; &lt;artifactId&gt;kafka-streams-test-utils&lt;/artifactId&gt; &lt;version&gt;4.2.2&lt;/version&gt; &lt;scope&gt;test&lt;/scope&gt; &lt;/dependency&gt; Testing a Streams application The test-utils package provides a TopologyTestDriver that can be used pipe data through a Topology that is either assembled manually using Processor API or via the [...]
&lt;dependency&gt; &lt;groupId&gt;org.apache.kafka&lt;/groupId&gt; &lt;artifactId&gt;kafka-streams-test-utils&lt;/artifactId&gt; &lt;version&gt;4.3.1&lt;/version&gt; &lt;scope&gt;test&lt;/scope&gt; &lt;/dependency&gt; Testing a Streams application The test-utils package provides a TopologyTestDriver that can be used pipe data through a Topology that is either assembled manually using Processor API or via the [...]
Operationalizing ZooKeeper Operationally, we do the following for a healthy ZooKeeper installation:
Redundancy in the physical/hardware/network layout: try not to put them all in the same rack, decent (but don&rsquo;t go nuts) hardware, try to keep redundant power and network paths, etc.</description></item><item><title>ZooKeeper</title><link>https://kafka.apache.org/0101/operations/zookeeper/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kafka.apache.org/0101/operations/zookeeper/</guid><description>Stable version The current stable branch is 3.4 and the la [...]