Dgraph is a open source, transactional, distributed, native graph database. Ever since the internet explosion, the complexity, connectedness and the size of the data has been growing unprecedently. Dgraph is built as an effort to enable and simplify development of scalable cloud applications, even when the data is highly connected and complex.
The first production ready major release v1.0.0 happened in December 2017. Since then, the feedback from the community and customers has been the driving force guiding the product. Thanks to all of you!
Also, along the way we have hit few major milestones. Raising series A funding and Reaching 10K starts tops the list.
Now, Dgraph's major release, v1.1 is here. The new release is shipped with plethora of changes. In this blog, let's take a tour through the notable features and enhancements.
Let's start with the exciting features which are introduced in the release.
Starting in version 1.1, Dgraph has support for a type system. Types allows grouping of nodes into sets. All nodes with same label belong to a set. Types describe the data.
The type system follow GraphQL syntax for defining the types. The fields in the types and thier indexes has to be first added to the schema.
type Student {
name: string
dob: datetime
home_address: string
year: int
}The nodes could be later added, queries and filtered on based on their types. Here are the docs to know about type system in Dgraph.
Dgraph doesn't have the concept of primary key. If you want to gurantee uniqueness of value of a predicate (like email id of an user), upserts has to be used.
Previously to this release, upserts were a two step operation. First, find query to find whether the email id of user exists, then use mutation to create one.
Now with the new upsert block feature, the developer experience of the operations has enhanced.
Here are the docs to refer to upsert block.
- The expand() function can be used to expand the predicates in a node. Starting with version 1.1,
the keyword predicate has been deprecated. Instead, to properly use the expand() function,
the use of the type system is required.
Here is the link to docs to learn
more about the
expand()capabilities.
Backups are part of Dgraph's enterprise package. They enable to take backup of Dgraph directly to cloud storage such as Amazon S3 or any Minio storage backend. These backups can be used to restore a new Dgraph cluster to the previous state from the backup. Here is the link