YouTrackDB: A General-Use Object-Oriented Graph Database by JetBrains
YouTrackDB: A General-Use Object-Oriented Graph Database by JetBrains
YouTrackDB is a general-purpose object-oriented graph database developed by JetBrains. It is designed to handle complex graph relations natively, eliminating expensive run-time JOINs by providing O(1) complexity for link traversals.
Core Technical Features
High-Performance Graph Traversal and Transactions
YouTrackDB optimizes data processing by ensuring that link traversal is processed with O(1) complexity. To maintain data integrity, the database implements ACID transactions with snapshot isolation by default. This ensures that every transaction operates on a stable snapshot of the database from its start time, which prevents dirty reads, non-repeatable reads, and phantom reads.
Object-Oriented Data Model
The database provides an object-oriented API that implements rich graph and object-oriented data models. Unlike traditional relational databases, YouTrackDB implements fundamental object-oriented concepts, such as inheritance and polymorphism, directly at the database level.
Query Languages and API Support
YouTrackDB supports multiple ways to interact with data:
- TinkerPop and Gremlin: It implements the Apache TinkerPop API and supports the Gremlin query language out of the box.
- YQL (YouTrackDB Query Language): A SQL-based language with extensions for graph functionality. YQL uses dot notation for link traversal instead of JOINs and includes a
MATCHstatement for graph pattern matching.
Deployment and Security
YouTrackDB offers flexible deployment and security options:
- Deployment Modes: It can be used as an embedded database via a Maven/Gradle dependency or as a standalone network service via Docker.
- Schema Flexibility: The system supports schema-less, schema-mixed, and schema-full development workflows.
- Security: It features a security profiling system based on users, roles, and predicate security policies, with optional encryption of data at rest.
Development and Origins
Relationship to OrientDB and Xodus
YouTrackDB is a fork of OrientDB and has been re-architected under the com.jetbrains.youtrackdb package namespace. The project's technical leader, Andrii Lomakin, was previously one of the main contributors to OrientDB. While it is intended for general use, it is distinct from Xodus, the database currently used in production for YouTrack.
Implementation Details
Despite being a JetBrains project, YouTrackDB is written in Java rather than Kotlin and requires at least JDK 21. The development process is highly structured, involving research, design, plan review, and track-by-track implementation. Notably, the project makes heavy use of Claude Code for its development, including the use of 25 agent definitions for tasks such as code review.
Community Insights and Perspectives
Community discussion highlights several points regarding the utility and positioning of YouTrackDB:
"Object databases routinely go away and routinely come back... The main issue was really scaling out (as in, multiple machines) but otherwise was a really great database."
Users have noted the potential for YouTrackDB to be used with graph neural networks due to its O(1) traversal capabilities, while others questioned the naming convention of linking a general-purpose database so closely to a specific product like YouTrack.