Hi.
I am new at this too, but I will attempt an answer. gRPC exists primarily as a protocol. There are 3 main implementations, C/C++, Go and Java. Each of these has its own repo. API's are somewhat close but also vary by language so they are idiomatic - and to be honest, the APIs aren't the grpc 'contract' - the protocol is.
The C/C++ repo serves as the 'core' by which ancillary languages can call down into, for example Node & C#. Even within the C/C++ repo, things can depend on your platform of choice - right now Linux can provide client-side balancing by virtue of the fact that it uses C-ARES for DNS resolution. On Windows, the core currently only supports the platform DNS resolver.
So - if you are running Node on Linux, I think you are in luck. You can use: 'dns://youdnsserver/yourservice' when you create the channel. If your DNS sever returns a SRV record with multiple IP address, the channel will take care of balancing across them. This also means that if you are using something like Consul to be your DNS server you may do some form of "service discovery" using the 'yourservice' portion of the address you pass - which may be used to do some form of querying against the pool of services it knows about.
Myself, I am on Windows and very much waiting in anticipation for the C-ARES resolver to make it to the Windows platform so I can do just as I described above. Last I heard it was due 'early Q1 2018' and I havent been able to get this verified this year.
Its also worth mentioning that you can write native plugins for the C/C++ library to load to write your own logic to do these things. Again, I am not sure where this is, I have a feeling its still a TODO.
Bear in mind this answer is "to the best of my knowledge" and might well be way off :-)