React, Flux, GraphQL, Hack, HHVM...? All of this and more!
The name GraphQL might suggest that it's a language for working with Graph Databases, similar to SQL for relational databases. But GraphQL is actually a technology that is meant for high level communications between applications that can (but don't have to) connect to a Graph Database.
Dgraph is a new project that essentially aims to create a high performance Graph Database that uses GraphQL natively as an internal query language. This will make GraphQL a direct competitor to graph database query languages like Open Cypher and Gremlin.
This is definitely an interesting endeavor and with the team behind being largely ex-Googlers, they've got the brains for sure. And with the current buzz over GraphQL in general, the project definitely is at the right place at the right time. Being written in the Go programming language that's high performance and makes concurrency easy does not hurt.
The current market leader in Graph Databases is Neo4j. There are competing products like ArangoDB and OrientDB, but Neo4j's advantage is the acclaimed Cypher query language. In a recent move the Neo4j team opened up the specification as Open Cypher with the target to making it the "SQL for Graph Databases, with good rationale behind it:
A high-quality query language that already has broad adoption is extremely valuable because of its reusability across platforms. A common language also helps grow the wider graph space, encouraging healthy competition (another advantage to users).
- Meet openCypher: The SQL for Graphs
The Neo4j is obviously very confident that their implementation of Open Cypher compatible will be the best one out there. With GraphQL originally being a higher level API technology, it remains to be seen if GraphQL can rival Open Cypher as a SQL technology.
Dgraph continues on the trend how building backends is becoming increasingly integrated with the database with projects like sql-to-graphql and like postgraphql. Hosting is also becoming simplified with containerization technologies maturing rapidly, with a Docker Container being the primary option for deploying Dgraph. In addition GraphQL BaaS platforms like Reindex will enable development shops to focus application development purely without deep knowledge in storage technologies.
In any case the Dgraph is a very welcome project and anyone looking for a backend for Apollo driven Angular 2 or React.js applications, for example, should definitely pay attention.Tweet