React, etc. Tech Stack

React, Flux, GraphQL, Hack, HHVM...? All of this and more!

Dgraph has the potential to become a defacto standard for GraphQL powered DBs

Dgraph, a very ambitious project that aims to match together an advanced Graph Database and a GraphQL API. For database projects especially, stability and adoption are key.

There are only a handful of popular databases in each category, and for GraphQL powered DBs, there is still no gold standard. Dgraph could be it.

Databases are often classified by their key characteristic to some class. While there is an increasingly a blurring line between some of them, with hybrid options such as PostgreSQL JSON support, the common classification still applies pretty well.

Each of these classes has a small number of players that rule a majority of the market. Compared to programming languages, which there are an infinite amout of, databases as a source of stability has a tendency to consolidate.

This is why each class of databases have a few market leaders. Let's consider a few database segments:

  1. Relational Database
  2. Key-value Stores
  3. Document Databases
  4. Graph Databases

For the classical relational databases there are a number of huge options. But for most starting developers the familiar ones are MySQL/MariaDB or PostgreSQL. These options are so commonly embedded in the open source, that you'd really have to go out of your way to use some alternatives.

For key-value stores the old-timer is memcached continues to be very popular, but Redis is increasingly becoming an alternative that is gaining mindshare. For document databases, the developer world has largely consolidated on MongoDB and CouchDB. So these two classes are pretty well covered and it's hard to shake the status quo.

Graph databases have been around for a long time, but are only now breaking into the mainstream web development circles. The 500 pound gorilla in this category is Neo4j, with a essentially a first mover advantage, a great product and an open query language.

Currently Neo4j is pretty much the only mass-adopted option for graph databases. There are other options like ArangoDB and OrientDB, but none of these have critical mass. Dgraph is a product that could become one of the big ones for Graph Databases.

GraphQL is not a Database Query Language, but it can be

GraphQL is an open standard that specifies querying of data over the network. It is more of a technological equivalent to REST rather than a graph database query language and technically not a competitor to Open Cypher. But since the world is becoming increasingly external API driven, GraphQL makes perfect sense for an open Graph Database.

Dgraph is a Graph Database that uses the GraphQL protocol for all communications with the external world. Traditionally many databases user either a bespoke protocol, like the one in MySQL, or a RESTful API, like the one in MongoDB. Neo4j, the leading Graph Database uses a RESTful API.

With the huge momentum GraphQL has behind it and the power that graph databases offer, there is plenty of technical potential here. Dgraph may be a young product, but it's certainly has both technological capability and a super talented team:

This is definitely an interesting endeavor and with the team behind [Dgraph] 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.
Dgraph is a next generation Graph Database with GraphQL as the query language

This is definitely a space to keep an eye on. There is still room for a player in the graph database category for popular players and if the team behind Dgraph continues to deliver and GraphQL... the question in the future that you ask when choosing a graph database will be: Should we choose Dgraph or Neo4j?

Written by Jorgé on Wednesday October 19, 2016

Permalink - Tags: graphdb, graphql, neo4j

« PHP 8.0 to ship with a JIT compiler - Choosing between Angular, React and Vue.js? You can't go wrong. »