# StreamAssignor relation to RangeAssignor

**URL:** <https://forum.confluent.io/t/streamassignor-relation-to-rangeassignor/3320>\
**Category:** Kafka Streams\
**Created:** [9 November 2021 15:09 UTC](https://forum.confluent.io/t/streamassignor-relation-to-rangeassignor/3320 "2021-11-09T15:09:15Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![sunilsun42](https://avatars.discourse-cdn.com/v4/letter/s/2bfe46/32.png) [@sunilsun42](https://forum.confluent.io/u/sunilsun42)\
**Post date:** [9 November 2021 15:09 UTC](https://forum.confluent.io/t/streamassignor-relation-to-rangeassignor/3320/1 "2021-11-09T15:09:15Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![mjsax](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.confluent.io/mjsax/32/3113_2.png) [@mjsax](https://forum.confluent.io/u/mjsax)\
**Post date:** [10 November 2021 04:02 UTC](https://forum.confluent.io/t/streamassignor-relation-to-rangeassignor/3320/2 "2021-11-10T04:02:51Z")

</div>

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