datagraph icon indicating copy to clipboard operation
datagraph copied to clipboard

DataGraph

An experimental project to explore what a GraphQL server with optimal IO concurrency and batching would look like.

Resources

Haxl

  • Useful Haxl tutorial: http://gelisam.blogspot.com/2015/01/haxl-anti-tutorial.html
  • How to write a data source: https://gist.github.com/gelisam/0549eb2a292f86ca2574/4ef520bd40e2d9a2b660e0fb7f4baddabcaa0eed
  • Another Haxl tutorial: https://simonmar.github.io/posts/2015-10-20-Fun-With-Haxl-1.html
  • Example Data Source: https://github.com/simonmar/haskell-eXchange-2015/blob/3ae0e34a051201eb77721bee2e940ec1f764a0df/BlogDataSource.hs
  • Haxl.Prelude: https://hackage.haskell.org/package/haxl-0.3.1.0/docs/Haxl-Prelude.html
  • Haxl.Core: https://hackage.haskell.org/package/haxl-0.3.1.0/docs/Haxl-Core.html

GraphQL

  • The GraphQL spec: https://facebook.github.io/graphql/
  • Star Wars schema stuff: https://github.com/graphql/graphql-js/tree/master/src/tests

WORKING

  • queries
  • redis backend
  • backend IO batching
  • benchmarks
  • mutations, incl. sequencing

TODO

  • nullability
  • input coercion
  • eliminate as much haxl / graphql boilerplate as possible
  • errors (overall envelope: {data: {: }, errors: [...]}
  • query tests from https://github.com/graphql/graphql-js/blob/master/src/tests/starWarsQueryTests.js
  • type checking