[ 
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)

Reply via email to