Compare

Dgraph vs Fauna

Which is the Best Graph Database?

Updated in July 2021

Dgraph Fauna
Native GraphQL Support

Yes

Only DB to natively support GraphQL resulting in capacity to process GraphQL queries in parallel with high performance

Yes

Fauna has native GraphQL support for data access. It generates some basic queries and mutation types from the schema, but doesn't offer delete operations through GraphQL. For update mutations, you have to do a partial-update-mutation through Schema Previews.

Distributed Graph Database

Distributed with the ability to use the same query everywhere as if querying a single database

Fauna does not specialize in a single type of database model. Instead it supports multiple database models including:

  • Document store
  • Graph DBMS
  • Relational DBMS
  • Time Series DBMS
Distributed ACID Transactions
  • Supported and Jepsen-tested
  • Synchronous replication with immediate consistency meaning any client can read the latest writ
  • Open source
Reference

Fauna uses a Calvin-inspired protocol to ensure full ACID transactions and is Jepsen tested.

Sharding
  • Predicate-based sharding. Avoids N+1 problem and network broadcasts when running a query in high fanout scenarios. This ensures low-latency query execution, irrespective of the size of the cluster or the number of intermediate results. Reference
  • Consistent production level latencies and consistent queries. Reference
  • Automatic sharding
  • Sharding a single predicate on the roadmap
Every FaunaDB cluster is made up of three or more logical datacenters (a physical datacenter can contain more than  one logical datacenter). Data is partitioned by primary key. Indexes are partitioned by term. Both instances and indexes scale linearly for reads and writes, regardless of their cardinality or the number of nodes in the physical cluster.
Consistent Replication
Synchronous replication across all replicas

Fauna’s Calvin-inspired system also works as a data replication layer offering consistent replication and is semi-synchronous.

Linearizable Reads
Strong (sequential) consistency across clients. Reference

Fauna defaults to strict serializability for read-write transactions and snapshot isolation for read-only transactions.

reference

Correctness and Durability Testing
High Availability

Yes

  • HA Cluster Setup is explained here
  • HA Cluster setup is available in Community Edition
  • High availability depends on the backend configuration. Both Hbase and Cassandra can be highly available.
  • If an instance fails, i.e. is not properly shut down, JanusGraph considers it to be active and expects its participation in cluster-wide operations which subsequently fail because this instances did not participate in or did not acknowledge the operation. In this case, the user must manually remove the failed instance record from the cluster and then retry the operation. Reference
Transparent Data Encryption

Yes

Yes, database files are encrypted at rest with a user-specified key

Not supported

Query Languages
Management of Runaway Queries
  • Context cancellation which works across clients and servers. So, a context cancellation at the client level would automatically cancel the query at all involved servers
  • OpenCensus integration, which allows distributed tracing all the way from app to Dgraph cluster and back
  • Open standards for query context cancellation and tracking

Fauna employs cooperative scheduling with QoS to achieve performant multi-tenant architecture. It processes queries at granular level to mitigate overheads from context switching in the events of runaway queries.

Reference.

Backups
  • Binary format
  • Both full and incremental backups to files, S3 and Google storage via Minio
  • Live backups with no downtime

Reference

Fauna doesn’t offer any backup and restore solution.

Reference.

Pricing and Free Trial
  • Open source version is under Apache 2.0, so free to use and modify
  • Enterprise version pricing is based on the number of instances of Dgraph, not the number of cores / RAM / Disk, etc…
Fauna is not open source so no community edition is available. Fauna pricing is based on usage
Appropriate as primary database to build apps/data platform on
Dgraph is a general-purpose database
Fauna supports many different use cases and can be used as a primary database.
Open Source

Yes

  • Apache 2.0. GitHub
  • Enterprise features are NOT Apache 2.0. But, users can still read the source
  • Dgraph open source version and enterprise version provide the same performance. They’re only different in that enterprise version has more features
  • Dgraph supports many open standards, like Grpc, Protocol Buffers, Go contexts, Open Census integration for distributed tracing

No

Fauna is not open source and uses a closed source approach to all of their offerings.

The drivers and Fauna shell are open source under the Mozilla Public License.

Protocols
  • HTTP/HTTPS
  • gRPC
  • Protocol Buffers
  • HTTP/HTTPS
Point in Time Recovery

On the roadmap

Fauna has a temporal storage engine that stores the last 30 days of history for each document. This provides simple recovery in case of accidental data loss.

Reference.

Multi-Region Deployments

Yes

SQL Migration Tool

Yes

No

Some third-party tools may be available to help though with varying consistency

Authentication and Authorization
  • JSON web tokens
  • ACLs for enterprise
  • Integration with LDAP on the roadmap

Fauna provides identity-based and anonymous-based access models, through the following features:

  • Attribute-based access control (ABAC)
  • Keys

JSON web tokens and Auth0 integration is only available under a paid plan.

Reference

Drivers
  • Dgraph’s drivers use gRPC not REST
  • Any GraphQL compatible client can be used
  • Dgraph’s supported drivers are the same as Neo4J’s supported drivers: Java, JavaScript , Go, Python, .Net
  • Dgraph’s unofficial drivers are: Rust, Dart, Elixir
Reference

Fauna officially supports drivers for the following programming languages, including: C#, Go, Java, and more.

Community supported drivers are also available for Ruby and Swift.

Multi-Database Features

Multi-tenancy supported since Dgraph v21.03

Fauna supports Multi-Tenancy

Reference

Graph Database as a Service (DBaaS)

Yes

Fauna does expose ability to run as a DBaaS solution.

Query Execution Plans
Query planning on the roadmap

No

Support for Graph Algorithms
  • Shortest k-paths
  • Edge traversal limit to determine cycles in graphs
  • Others requested from community listed here

No

Apache Spark Integration

No

No

Kafka Integration
On the roadmap

No

Import/ Export
  • Using BulkLoader or LiveLoader, Dgraph can read the data as is with no modification needed
  • Supported data formats are JSON and RDF
  • Exporting database is explained here

No

The equivalent tool Fauna Data Manager has been deprecated and is no longer supported.

Reference

Get Started Today!

Dgraph gives you the scalability and performance you need with the pricing and transparency you expect. Start building today with the world’s most advanced and performant GraphQL platform.