Dgraph is a distributed, low-latency, high throughput, native graph database. It's written from scratch in Go language, with concurrency and scalability in mind.
Dgraph is currently under heavy development and should not be considered production-ready before the release of 1.0. Though, we encourage you to use Dgraph for personal projects and small sized startups. To know the currently supported features, please refer the product roadmap.
Dgraph is designed from ground up to be a distributed graph database. It is also designed to provide resilience against storage failures, server crashes, or partial data center collapses. Dgraph aims to scale from a single laptop all the way to hundreds of machines in or across data centers.
Dgraph strives to provide low latency query execution, but more importantly a consistent latency despite the number of results or size of the cluster. This is achieved by minimizing the number of network calls, which in turn reduces the number of machines that need to be touched to process a query.
Dgraph aims for high concurrency in both read and write operations. It cares deeply about machine utilization, and effectively using all the available CPU cores. To keep concurrency high, it avoids acquiring high-level locks, instead acquiring very granular locks to allow many read or write operations to proceed concurrently.
Dgraph embraces open source principles and believes that any backend infrastructure that a user would trust their data with, must be open source, and compatible with most popular data formats for ease of data porting. To that effect, Dgraph uses the liberal Apache License, Version 2.0 in it's open core offering, targeted towards backend engineers.
Whereas many graph databases tend to be used as a supplement to a main SQL/NoSQL database, Dgraph's motivation is to be robust and reliable enough to be the primary database in the user stack.
Dgraph core focusses on simplicity and minimalism. It weighs one feature against another similar one, picks one which has a simpler design or fewer drawbacks, and implements it. It strives to keep the design and implementation simple and avoid any unnecessary functionality within the core.
Dgraph aims for a clean and elegant design and implementation.
Dgraph avoids doing cheap tricks like query caching to achieve performance. It believes that query caching is best handled outside the database, depending upon user needs.
The team does strict code reviews to ensure that we maintain high-quality code, which fits into the overall architecture well. There is a very high emphasis on refactoring to remove unnecessary code or simplify the complicated logic.
Manish Rai Jain, an Indian programmer, began playing with the idea of Dgraph in July 2015, coding in October 2015 and released v0.1 early December 2015. The inspiration for Dgraph came from his experience at Google, where he was one of the leads for a project to unite all structured data at Google, to serve from a graph system right behind web search. The system had to do low-latency query execution and provide high throughput to be able to attempt a significant chunk of the web search query traffic.
- Hacker News: DGraph graph database 130 points, 47 comments
- Hacker News: Scaling nodes in a Dgraph cluster 69 points, 35 comments
- Australian Financial Review Cannon-Brookes, Blackbird, Bain back new migrant's graph start-up
- Startup Smart After two failed startups, ex-Google employee secures $1.45 million in funding and the backing of the co-founder of Atlassian
- Yahoo Finance Ex-Googler startup DGraph Labs raises US$1.1 million in seed funding round to build industry’s first open source, native and distributed graph database