Thats a good question. Attaching clients to a single server process could be one way to enforce that transaction sessions are maintained with the same RPC server. I think we’re trying to leave the discovery aspect somewhat open ended, such that identifying the RPC endpoints could be done through existing mechanisms that people operate or by connecting to the cluster using the cluster file, as we do now. We’d need to consider whether this makes sense in that context.
If we go the route of implementing load balancing in the client binding, one option could be to persist a connection to a random server process and then move if it fails or signals to you that it needs you to move. Or perhaps each transaction could choose an arbitrary server process from all or a subset of the available ones.