Multi-model graph databases compared
Databases that support both property graph and RDF models.
17 active multi-model graph databases are in the catalogue. They are written mostly in C++ and Java, 9 are open source, and 11 carry survey feature scores. FaunaDB is no longer active and listed separately below.
| Attribute | | | | | | |
|---|---|---|---|---|---|---|
| At a glance | ||||||
| Rank | #2 | #5 | #7 | #10 | #14 | #21 |
| Score | 67.5 | 63.8 | 63.3 | 61.8 | 60.1 | 57.8 |
| GitHub stars | 14.2k | 5k | — | — | 32.8k | 1.1k |
| Popularity | 87.7 | 75.4 | 67.3 | 70.4 | 65.3 | 56.1 |
| Activity | 74.0 | 65.8 | 99.0 | — | 71.8 | 80.8 |
| Community | 52.0 | 65.5 | 53.9 | 59.9 | 61.0 | 36.6 |
| Research | 78.9 | 64.8 | 59.1 | 88.5 | 50.4 | 70.3 |
| Fundamentals | ||||||
| Description | A multi-model database supporting graphs, key-value pairs, and documents in a unified JSON-based data model. Offers both an in-memory storage engine and a RocksDB-based engine for larger datasets. | A distributed multi-model database combining graph and document models with TinkerPop support. Features sharding for horizontal scaling and ACID transactions. | A fully managed graph database service from AWS supporting both property graph and RDF models. Available as Neptune Database (for transactional workloads) and Neptune Analytics (for analytical queries). | A globally distributed multi-model database service on Microsoft Azure with property graph support through the Apache Gremlin API. Offers multi-region replication and multiple consistency models. | A multi-model database written in Rust that combines document, graph, and relational paradigms. Uses inter-document record links for graph traversals, with ACID transactions and row-level permissions. | A multi-model database inspired by OrientDB, supporting graphs, documents, key-value, time-series, and search. Uses RAFT-based replication for high availability. |
| Vendor | ArangoDB Inc | OrientDB Community | Amazon Web Services | Microsoft | SurrealDB | ArcadeDB |
| Model | Multiple | Multiple | Multiple | Multiple | Multiple | Multiple |
| Kind | database | database | database | database | database | database |
| Category | Enterprise | Enterprise | Enterprise | Enterprise | Growing | Growing |
| First released | 2012-03 | 2010 | 2017-11 | 2017-05 | 2022 | 2021-09 |
| Status | active | active | active | active | active | active |
| License | BSL-1.1 | Apache-2.0 | Proprietary | Proprietary | BSL-1.1 | Apache-2.0 |
| Written in | C++ | Java | — | — | Rust | Java |
| Query languages | AQL | SQL, Gremlin | Gremlin, SPARQL, openCypher | Gremlin, SQL | SurrealQL, GraphQL, GQL | SQL, openCypher, Gremlin, GraphQL |
| gdotv support | no | no | yes | yes | no | yes |
Feature scores 35 of 46 rows differ
| Feature | ArangoDB | OrientDB | Neptune | Cosmos DB | SurrealDB | ArcadeDB |
|---|---|---|---|---|---|---|
| Community & Business | ||||||
| Active development | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Commercial support | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Live community | 0.5 | 0.5 | ✓ | 0.5 | 0.75 | ✓ |
| Open Source | ✓ | ✓ | · | · | 0.5 | ✓ |
| Pricing | · | · | ✓ | ✓ | ✓ | ✓ |
| Trendiness | 0.25 | 0.25 | ✓ | ✓ | ✓ | · |
| Deployment | ||||||
| Containerization | ✓ | ✓ | · | 0.5 | ✓ | ✓ |
| Work as dedicated instance | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Work as embedded | · | ✓ | · | · | ✓ | ✓ |
| Testing in-memory version | ✓ | ✓ | · | ✓ | ✓ | · |
| Platform | ||||||
| Operating on Linux | ✓ | ✓ | ✓ | · | ✓ | ✓ |
| Operating on Windows | ✓ | ✓ | · | ✓ | ✓ | ✓ |
| SaaS offering | · | · | ✓ | ✓ | ✓ | · |
| Operations | ||||||
| Automatic updates | · | · | ✓ | ✓ | · | ✓ |
| Client side caching | · | · | ✓ | · | · | · |
| Data versioning support | · | · | · | · | ✓ | · |
| Live backups | ✓ | ✓ | ✓ | ✓ | · | ✓ |
| Distribution | ||||||
| Cluster Re-balancing | ✓ | · | · | 0.5 | ✓ | · |
| Data Distribution | ✓ | ✓ | · | ✓ | ✓ | · |
| High-Availability | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Query Distribution | ✓ | 0.5 | 0.5 | ✓ | ✓ | · |
| Replication support | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Developer Experience | ||||||
| Data types defined | ✓ | ✓ | 0.5 | · | 0.5 | ✓ |
| Logging/Auditing | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Object-Graph Mapper | ✓ | · | · | ✓ | ✓ | · |
| Reactive programming | · | · | ✓ | ✓ | ✓ | ✓ |
| Documentation up-to-date | ✓ | 0.5 | ✓ | ✓ | ✓ | ✓ |
| Binary protocol | ✓ | ✓ | ✓ | · | ✓ | ✓ |
| CLI | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| GUI | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Data Model | ||||||
| Multi-database | ✓ | ✓ | · | ✓ | ✓ | ✓ |
| Graph-native data | · | · | ✓ | · | ✓ | ✓ |
| REST API | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Query Language | 0.5 | ✓ | ✓ | ✓ | ✓ | ✓ |
| Transactions | ||||||
| Granular locking | · | · | ✓ | · | · | · |
| Multiple isolation levels | · | ✓ | ✓ | ✓ | 0.5 | ✓ |
| Read committed transaction | · | ✓ | ✓ | ✓ | ✓ | ✓ |
| Transaction support | ✓ | ✓ | ✓ | 0.5 | ✓ | ✓ |
| Schema & Security | ||||||
| Constraints | ✓ | · | ✓ | · | ✓ | ✓ |
| Schema support | 0.5 | ✓ | 0.5 | · | ✓ | ✓ |
| Secondary indexes | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Server side procedures | 0.5 | ✓ | · | ✓ | ✓ | ✓ |
| Triggers | · | ✓ | · | ✓ | ✓ | ✓ |
| Authentication | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Authorization | 0.5 | ✓ | ✓ | ✓ | ✓ | ✓ |
| Data encryption | ✓ | ✓ | ✓ | ✓ | 0.5 | ✓ |
All 17 engines
| Name | Vendor | Model | Category | GitHub stars | License | Written in | Query languages | Rank |
|---|---|---|---|---|---|---|---|---|
| SAP Hana | SAP | Multiple | Enterprise | — | Proprietary | C++ | SQL, openCypher, GraphScript | #24 |
| Oracle Graph | Oracle | Multiple | Enterprise | — | Proprietary | Java | SQL/PGQ, PGQL, SPARQL | #29 |
| TerminusDB | DFRNT | Multiple | Emerging | 3.4k | Apache-2.0 | Prolog | WOQL, GraphQL | #36 |
| MarkLogic | Progress Software | Multiple | Enterprise | — | Proprietary | C++ | SPARQL, XQuery, SQL | #40 |
| Virtuoso | OpenLink Software | Multiple | Enterprise | 970 | GPL-2.0 | C | SQL, SPARQL | #41 |
| Kinetica | Kinetica | Multiple | Established | — | Proprietary | C++ | SQL | #68 |
| Grafeo | GrafeoDB | Multiple | Emerging | 722 | Apache-2.0 | Rust | GQL, openCypher, SPARQL, Gremlin, GraphQL, SQL/PGQ | #80 |
| Data Graphs | Data Language | Multiple | Emerging | — | Proprietary | Rust | openCypher, GQL | #98 |
| MemGQL | Memgraph | Multiple | Emerging | — | Proprietary | — | GQL | #99 |
| NodeDB | NodeDB-Lab | Multiple | Emerging | 180 | BUSL-1.1 | Rust | SQL, openCypher | #103 |
| MillenniumDB | IMFD Chile | Multiple | Emerging | 261 | GPL-2.0 | C++ | GQL, SPARQL | #106 |
No longer active
- FaunaDB — Service shut down in 2025.