Recently I found some articles/projects using reverse proxy load balancers in front of Kafka (ie. https://github.com/banzaicloud/kafka-operator).
Until today, I though I understood Kafka principles and architecture well, because I thought that Kafka uses client-side balancing and consistent hashing so every client knows which partition is mastered on which broker and communicated with appropriate broker directly. Kafka even has protocol for notifying producers and consumers about repartitioning and other topology changes, so I really though that Kafka is supposed to be used without any load balancer. This has been even proven to me by receiving exceptions about producing to invalid broker/partition when we experienced issues during operations.
So what's the meaning of those proxies and load balancers in front of Kafka?