I was trying to understand the StreamAssignor that is used in Kafka Streams, but I am a bit confused and previously RangeAssignor was the default one, and majorly due to graceful joining requirements, this worked like a charm. But What I assume is range-based assignments are still a must to have for the streaming use cases for Joins? then why do we have StreamAssignor? Is it something called RangeAssignor + Cooperative Rebalancing = Stream Assignor?
previously RangeAssignor was default one and majorly due to graceful joining requirements this worked like a charm.
I guess you are referring to the plain consumer? For Kafka Streams, there is no range assignor.
But What i assume is range based assignments are still a must to have for streaming use case?
Not really. StreamAssignor is not range based (overall, the strategy is complex). Of course, for joins it still needs to ensure co-partitioning (and it does).
Is it something called RangeAssignor + Cooperative Rebalancing = Stream Assignor?
No. StreamAssignor is build from scratch and takes all kind of things into considerations. Also, it work with eager or cooperative rebalancing (note that eager/cooperative is orthogonal to the strategy, ie, round robin, range, etc).