Neo4j vs TypeDB
Neo4j is a property graph database; TypeDB is a other database. Neo4j (2007, GPL-3.0, Java) ranks #1 this month; TypeDB (2016, MPL-2.0, Rust) ranks #7. They differ on 13 of 46 surveyed features.
Choosing between them
TypeDB models data as entities, relations and attributes arranged in type hierarchies, and queries it with TypeQL, including functions for derived data. A query against a supertype also returns its subtypes. Version 3.0, released in December 2024, rewrote the database in Rust; it is licensed under MPL-2.0. Pick TypeDB when the domain has a rich schema with inheritance and you want the database to enforce and reason over it.
Neo4j is a property graph database queried with Cypher and GQL, with a wider set of drivers, tools and graph algorithms. Pick it for traversal-heavy application queries over a flexible schema.
| Attribute | Neo4j | TypeDB |
|---|---|---|
| At a glance | ||
| Rank | #1 | #7 |
| Score | 88.8 | 68.4 |
| GitHub stars | 17.3k | 4.5k |
| Popularity | 98.6 | 75.0 |
| Activity | 86.5 | 75.2 |
| Community | 73.8 | 63.3 |
| Research | 98.7 | 50.0 |
| Fundamentals | ||
| Description | A property graph database that stores data as fixed-size records in linked lists for index-free adjacency traversal. Offers community and commercial editions with an extensive graph algorithms library. | A polymorphic database that natively models inheritance hierarchies, dependencies, and conceptual schemas using its TypeQL query language. Supports clustering for scalability and a cloud-agnostic deployment model. |
| Vendor | Neo4j Inc | Vaticle |
| Model | Property Graph | Other |
| Kind | database | database |
| Category | Established | Growing |
| First released | 2007 | 2016 |
| Status | active | active |
| License | GPL-3.0 | MPL-2.0 |
| Written in | Java | Rust |
| Query languages | Cypher, GQL | TypeQL |
| gdotv support | yes | no |
Feature scores 13 of 46 rows differ
| Feature | Neo4j | TypeDB |
|---|---|---|
| Community & Business | ||
| Active development | ✓ | ✓ |
| Commercial support | ✓ | ✓ |
| Live community | ✓ | ✓ |
| Open Source | ✓ | ✓ |
| Pricing | 0.5 | ✓ |
| Trendiness | ✓ | ✓ |
| Deployment | ||
| Containerization | ✓ | ✓ |
| 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 | · | · |
| Data Distribution | ✓ | · |
| High-Availability | ✓ | ✓ |
| Query Distribution | ✓ | ✓ |
| Replication support | ✓ | ✓ |
| Developer Experience | ||
| Data types defined | ✓ | 0.5 |
| Logging/Auditing | ✓ | ✓ |
| Object-Graph Mapper | ✓ | · |
| Reactive programming | ✓ | ✓ |
| Documentation up-to-date | ✓ | ✓ |
| 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 | ✓ | ✓ |
| Schema & Security | ||
| Constraints | ✓ | ✓ |
| Schema support | ✓ | ✓ |
| Secondary indexes | ✓ | ✓ |
| Server side procedures | ✓ | · |
| Triggers | ✓ | ✓ |
| Authentication | ✓ | ✓ |
| Authorization | ✓ | ✓ |
| Data encryption | · | · |
Links
- Neo4j · website · github · full profile
- TypeDB · website · github · full profile