Skip to content
Chris Madsen edited this page Nov 6, 2018 · 12 revisions

Elastic has a few guiding principles. Those are not set in stone but provide general guidance.

  1. Elasticsearch has many many features, roughly 100 endpoints and 600 JSON structures last time we counted. In Elastic, they are implemented as required with a preference for search/indexing instead of administration. However, Elastic might not implement and support all of them. Forgive me.
  2. I love pull requests. I really do. However, please read the contribution guidelines first. When implementing an API endpoint, make it complete, and provide tests.
  3. Elasticsearch: The Definite Guide is a nice introduction to Elasticsearch in general (buy the book). The official documentation doesn't cover all subtleties, but is rather good, too. Please use those links before asking a general question about Elasticsearch.
  4. The tests in the GitHub repository are your friend. If you struggle with the syntax or trying to figure out how to do something with elastic, find the right test. If you cannot find it, don't be afraid to post an issue.
  5. The official JSON API specification is your friend. Use it. When in doubt, consult the Java API and the Elasticsearch source code. Elastic has a generate-api branch that automatically generates Go code for API endpoints (not 100% automatic however) based on the REST API spec. When trying to contribute an endpoint, you might start there.
  6. I try to follow the best practices of the official Elasticsearch clients. They are built on robust principles. Thank you guys for working out all those details.