- Describe how to build things
- What those things depend
- What platforms they should be built with
- Interact quickly
- Plain YAML or JSON files
- A popular programnig Language like Python or Javascript
- A stripped down Language like Bazel's modified Python
- Using NIX since it's limited to only deriving data
- Performing REST queries
- Writing our OWN DSL
- It represents graphs, a build system is a DAG which is a graph!
- It has a powerful type system and Schemas
- It's a description of a language only.. Implementation is left to authors
- Many Frameworks exist to make implementing easy
- Fronting REST API's is trivial
- It supports queries, mutations and subscriptions (think interactive logs)
- Finally it has popular edit widgets... check out the graphql website. All the documentation is interactive.
