I stumbled on this conversation while searching for the answer to the exact same question as Milan.
I just wanted to add my voice to this discussion, because this is directly relevant to us and the fact that the balancing of SAC is not done by the RMQ server is the only thing that prevents us from migrating to super-streams.
In my organization, we started implementing an architecture that uses an application-level partitioned stream from the start (since RMQ 3.9, I think. So before super-streams existed). The approach we used is basically the same as super streams: Client decide which of the partitions they publish to using a hashed routing key.
Our application is deployed on a k8s cluster. For many reasons, it is *much* easier to have the exact same configuration on all nodes/pods of the application. This means that we've had to implement the SAC on the application side. We rely on Akka cluster's ShardedDaemonProcess mechanism to do the load balancing by assign "shards" to each application instance and re-assigning them as nodes go down and come back up. While that solves our problem, it is somewhat complex and we'd be happier if we could do without it.
In my understanding, the only reason to use a super-stream together with SAC is to perform load balancing between multiple consumer. Having one consumer handling all the load while the others are idle renders the whole mechanism completely pointless. You mention that this could be solved by having different configuration on each consumer, but this is not really a good solution because:
1. It is not generally desirable to have to manage different configurations for each nodes (not saying it can't be done, just saying it's needlessly complex)
2. It requires applications to know the topology the super-stream (how many partitions, what are there names, etc...) to be able do the configuration properly, which is *precisely* what super-streams is supposed to hide.
3. When nodes start going up or down (for example during application rolling upgrades), it is likely that we end up with balanced consumers.
4. It still requires all sorts of mechanisms to make sure that the balancing is robust against minor disruptions like random disconnections.
As a result, in our case, there is no reason to switch to super-streams. It doesn't make our implementation any easier on the consumer side, and it's only marginally easier on the producer side.
So while I understand that broker-side balanced partition assignment is not a feature that is available yet, its absence also greatly reduces the usefulness of the feature.
Nicolas Piguet