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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]