This is an automated email from the ASF dual-hosted git repository.
mjsax pushed a commit to branch 4.2
in repository https://gitbox.apache.org/repos/asf/kafka.git
The following commit(s) were added to refs/heads/4.2 by this push:
new d2467d319b9 MINOR: improve Kafka Streams transform upgrade docs
(#21002)
d2467d319b9 is described below
commit d2467d319b9d1c7bb992bf112fb5ec6edb78f837
Author: Matthias J. Sax <[email protected]>
AuthorDate: Mon Dec 1 15:32:08 2025 -0800
MINOR: improve Kafka Streams transform upgrade docs (#21002)
We should also mention `flatTransformValues` method. Also adding new
4.1.1 release.
Reviewers: Bill Bejeck <[email protected]>
---
docs/streams/developer-guide/dsl-api.html | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/docs/streams/developer-guide/dsl-api.html
b/docs/streams/developer-guide/dsl-api.html
index 2c7c959a637..e71fafe55ea 100644
--- a/docs/streams/developer-guide/dsl-api.html
+++ b/docs/streams/developer-guide/dsl-api.html
@@ -3462,10 +3462,11 @@ grouped
<p>The Processor API now serves as a unified replacement for
all these methods. It simplifies the API surface
while maintaining support for both stateless and stateful
operations.</p>
- <p><b>CAUTION:</b> If you are using
<code>KStream.transformValues()</code> and you have the "merge repartition
topics"
+ <p><b>CAUTION:</b> If you are using
<code>KStream.transformValues()</code> or
<code>KStream.flatTransformValues()</code>
+ and you have the "merge repartition topics"
optimization enabled, rewriting your program to
<code>KStream.processValues()</code> might not be safe due to
<a
href="https://issues.apache.org/jira/browse/KAFKA-19668">KAFKA-19668</a>. For
this case, you should not upgrade
- to Kafka Streams 4.0.0 or 4.1.0, but use Kafka Streams
4.0.1 instead, which contains a fix.
+ to Kafka Streams 4.0.0 or 4.1.0, but use Kafka Streams
4.0.1 or 4.1.1 instead, which contain a fix.
Note, that the fix is not enabled by default for backward
compatibility reasons, and you would need to
enable the fix by setting config
<code>__enable.process.processValue.fix__ = true</code> and pass it
into <code>StreamsBuilder()</code> constructor.</p>
@@ -3680,6 +3681,8 @@ final StreamsBuilder builder = new StreamsBuilder(new
TopologyConfig(new Streams
}
}</code></pre>
<h5
id="cumulative-discounts-for-a-loyalty-program-removal">Cumulative Discounts
for a Loyalty Program</h5>
+ <p>Below, methods <code>applyDiscountWithTransform</code> and
<code>applyDiscountWithProcess</code> show how you can
+ migrate from <code>transform</code> to
<code>process</code>.</p>
<pre class="line-numbers"><code class="language-java">public
class CumulativeDiscountsForALoyaltyProgramExample {
private static final double DISCOUNT_THRESHOLD = 100.0;
private static final String CUSTOMER_SPENDING_STORE =
"customer-spending-store";