I accidentally stumbled upon `repartitionRequired` and `repartitionForJoin` in `KStreamImpl`, which are examined/called before KStream join operations to determine whether a repartition is needed.
The javadoc to `repartitionForJoin` explains the functionality: > Repartition a stream. This is required on join operations occurring after > an operation that changes the key, i.e, selectKey, map(..), flatMap(..). Given that this is undocumented, can this functionality be relied on? It is pretty nice when you don't care what the repartition topic is called.