elastigo works very well in production settings for us. Regarding the discovery of "hosts", my best suggestion is to read the elasticsearch documentation that describes their cluster management scheme - most of this work is handled by elasticsearch itself. In our (rather simple) use, I never had to think about anything behind the server address: port - nodes that connect to the named cluster when they enter the network (with the correct configuration parameters), and load balancing is handled by elasticsearch itself.
source share