We first started building the ElastomerClient gem when an official client was not yet available from Elasticsearch. We were looking for a client that provided a one-to-one mapping of the Elasticsearch APIs and avoided higher level complexity such as connection pooling, round-robin connections, thrift support, and the like. We think these things are better handled at different layers and by other software libraries.
Our goal is to keep our Elasticsearch client simple and then compose higher level functionality from smaller components. This is the UNIX philosophy in action.
To that end we have tried to be as faithful as possible to the Elasticsearch API with our implementation. There are a few places where it made sense to wrap the Elasticsearch API inside Ruby idioms. One notable location is the scan-scroll search type; the ElastomerClient provides a Ruby iterator to work with these types of queries.
Below are links to documents describing the various components of the ElastomerClient Client library. Start with the core components - specifically the Client document. All the other components are built atop the client.
Core Components
Bulk Components
Operational Components