[
https://issues.apache.org/jira/browse/KAFKA-19668?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18018893#comment-18018893
]
ASF GitHub Bot commented on KAFKA-19668:
----------------------------------------
mjsax commented on code in PR #721:
URL: https://github.com/apache/kafka-site/pull/721#discussion_r2331305729
##########
33/streams/developer-guide/dsl-api.html:
##########
@@ -3496,6 +3496,9 @@ <h5><a class="toc-backref" href="#id34">KTable-KTable
Foreign-Key
</tr>
</tbody>
</table>
+
+ <p><b>CAUTION:</b> If you are using "merge repartition topics"
optimization, it is not recommended to use <code>KStream#processValues</code>
to avoid compatibility issues for future upgrades to newer versions of Kafka
Streams.
+ For more details, see the <a
href="/40/documentation/streams/developer-guide/dsl-api.htm#transformers-removal-and-migration-to-processors">migration
guide</a> in the Kafka Streams 4.0 docs.</p>
Review Comment:
This update (same for other version up to, including, `3.8`) are only done
here on `kafka-site.git`, but not in `kafka.git`. But should be ok, as we won't
do any more 3.x bug-fix releases with high probability.
I did put this line into `3.9` though, as it's the last release in `3.9`
series and might get more bug-fix releases, if people are hesitant to migrate
to `4.0`.
> processValues() must be declared as value-changing operation
> ------------------------------------------------------------
>
> Key: KAFKA-19668
> URL: https://issues.apache.org/jira/browse/KAFKA-19668
> Project: Kafka
> Issue Type: Bug
> Components: streams
> Affects Versions: 3.3.0
> Reporter: Matthias J. Sax
> Assignee: Matthias J. Sax
> Priority: Blocker
> Fix For: 4.0.1, 4.2.0, 4.1.1
>
>
> When adding `KStreams#processValues()` we missed to declare the operation as
> "value changing". This can lead to an "incorrectly" built topology.
> The main problem is, that `processValues()` is the replacement of
> `transformValues()` which we removed with AK 4.0.0 release. Thus, if users
> rewrite existing programs from `transformValues()` to the new
> `processValues()` (what will be required when upgrading to 4.x release), they
> might observe this change as a regression.
> The impact of the changed topology is, that local state is effectively lost,
> and must be restored from the changelog topic, resulting in downtime after an
> upgrade.
> Note: the bug does only surface, if topology optimization is used, in
> particular the "merge repartition topics" rewrite.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)