ableegoldman commented on code in PR #16265: URL: https://github.com/apache/kafka/pull/16265#discussion_r1638741752
########## docs/streams/upgrade-guide.html: ########## @@ -134,11 +134,38 @@ <h3 class="anchor-heading"><a id="streams_notable_changes" class="anchor-link">< </p> <h4><a id="streams_api_changes_380" href="#streams_api_changes_380">Streams API changes in 3.8.0</a></h3> + + <p> + Kafka Streams now supports customizable task assignment strategies via the <code>task.assignor.class</code> + configuration. The configuration can be set to the fully qualified class name of a custom task assignor + implementation that has to extend the new + <code>org.apache.kafka.streams.processor.assignment.TaskAssignor</code> interface. + + The new configuration also allows users to bring back the behavior of the old task assignor + <code>StickyTaskAssignor</code> that was used before the introduction if + <code>HighAvailabilityTaskAssignor</code>. If no custom task assignor is configured, the default task assignor + <code>HighAvailabilityTaskAssignor</code> is used. + + This change also removes the internal config <code>internal.task.assignor.class</code> that was used for the same + purpose. If you were using this config, you should switch to using <code>task.assignor.class</code> instead. Review Comment: @lucasbru alright, just merged that PR to 3.8. Here's where 3.8 stands: 1. has _not_ removed the old `internal.task.assignor` config, though we want to encourage anyone using that to migrate to the new public config instead. should say something like "If you were using the old `internal.task.assignor.class` config, you should switch to using the new `task.assignor.class` config instead" 2. renamed the old TaskAssignor interface (which goes with the old `internal.task.assignor` config) to the LegacyTaskAssignor (don't need to say anything about this in the docs, just adding it for context) 3. renamed the old StickyTaskAssignor (which implements the LegacyTaskAssignor) to the LegacyStickyTaskAssignor, so "StickyTaskAssignor" now refers to (only) the new version of this assignor which implements the new TaskAssignor interface. For the docs, we should mention something like "If you were previously plugging in the StickyTaskAssignor via the old `internal.task.assignor.class` config, you will need to make sure that you are importing the new version of the StickyTaskAssignor when you switch over to the new `task.assignor.class` config" -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org