Skip to content
Dev Tools Article

YouTrackDB Revives Object-Oriented Graph Storage

JetBrains open-sources a multi-model graph database forked from OrientDB, aimed at complex domain graphs without a separate graph layer.

Lenn Voss
Lenn Voss
Cloud & Infrastructure Writer · Jul 14, 2026 · 7 min read
YouTrackDB Revives Object-Oriented Graph Storage

Most application graphs still end up as foreign keys, junction tables, or a second store bolted on later. YouTrackDB is JetBrains' answer: a general-purpose object-oriented graph database with a storage format built for relationships, Gremlin support, and ACID transactions. It is open source (Apache 2.0), written in Java, and already used by JetBrains in production for YouTrack itself.

That lineage matters. The project started in 2024 when a lead OrientDB developer forked the codebase after SAP's acquisition. YouTrackDB is not a greenfield experiment; it is a rebooted multi-model engine under a vendor that actually ships products on it. Versioning is still early (0.5.0-SNAPSHOT for the embedded artifact), so this is not a drop-in replacement for Neo4j or Postgres tomorrow. It is a serious option for teams whose domain model is already a graph of typed objects.

Object model meets graph storage

YouTrackDB's pitch is structural, not marketing. Links are first-class, and link traversal is O(1). There are no runtime JOINs for walking relationships. On top of that, the API implements graph and object-oriented models together: inheritance and polymorphism live at the database level, not only in your ORMs.

That combination is the interesting part. Pure graph stores force you to think in vertices and edges even when your domain is "Invoice extends Document." Document stores make polymorphism easy and relationships expensive. YouTrackDB aims at the middle: schema-less, schema-mixed, or schema-full as the project matures, with the same API for embedded and server deployments so you can prototype locally and promote without rewriting data access.

Query surface is deliberately familiar. Out of the box you get the TinkerPop API and Gremlin. YQL (YouTrackDB Query Language) is SQL-shaped with graph extensions: dot notation for link traversal instead of JOINs, a MATCH statement for pattern matching, and automatic index use. GQL support with Gremlin interop is in progress. The docs suggest YQL for prefetch, Gremlin for graph work. Full-text and GEO come via automatic Lucene sync; vector indexes are listed as upcoming.

Transactions default to snapshot isolation. Each transaction sees a stable snapshot at start time, which rules out dirty, non-repeatable, and phantom reads. Security is role- and predicate-based; optional AES encryption covers data at rest. None of that is novel alone. The package is: OO types, O(1) links, Gremlin, ACID, embedded-or-server, under one Java stack.

Where it sits among the usual suspects

Compare it to the tools developers actually reach for:

  • Neo4j / other pure graph DBs: stronger graph-query ecosystems and maturity, weaker native OO polymorphism and document-ish flexibility.
  • Postgres + recursive CTEs or ltree: operational simplicity and SQL everywhere, but relationship walks get expensive and schema for polymorphic domains gets awkward.
  • ArangoDB / multi-model stores: similar multi-model intent; different query languages and less of an "inheritance as a DB feature" story.
  • OrientDB: the direct ancestor. YouTrackDB is the fork JetBrains is actively developing; OrientDB continues under different ownership.

If your pain is "we keep modeling a graph in a relational schema and paying for it in joins and application-layer glue," this is aimed at you. If your pain is "we need a battle-tested graph query platform with a huge ecosystem," stay with the established graph vendors for now.

What adoption looks like for a Java team

Prerequisites are blunt: JDK 21+. The path of least resistance is embedded for local work and Docker for a server.

Embedded (Maven), from the project docs:

<dependency>
  <groupId>io.youtrackdb</groupId>
  <artifactId>youtrackdb-embedded</artifactId>
  <version>0.5.0-SNAPSHOT</version>
</dependency>

You also need the Central Portal snapshots repository. The shaded uber-jar relocates Guava, Jackson, Groovy, and friends under com.jetbrains.youtrackdb.shade so they do not collide with your app's versions. Gradle is the same artifact plus a snapshots-only Maven repo.

Quick console experiment:

docker run -it youtrackdb/youtrackdb-console

Server mode exposes the usual Gremlin Server style port and mounts secrets, databases, conf, and log volumes. Root password goes in secrets/root_password.

docker run -p 8182:8182 \
  -v $(pwd)/secrets:/opt/ytdb-server/secrets \
  -v $(pwd)/databases:/opt/ytdb-server/databases \
  -v $(pwd)/conf:/opt/ytdb-server/conf \
  -v $(pwd)/log:/opt/ytdb-server/log \
  youtrackdb/youtrackdb-server

Practical workflow for a greenfield service:

  1. Model domain types with inheritance you actually care about (issue types, workflow states, linked entities), not only bags of properties.
  2. Start schema-less or schema-mixed while the model is still moving; tighten to schema-full where contracts matter.
  3. Prefetch with YQL, traverse with Gremlin (or YTDB's Gremlin DSL extensions), keep transactions short under snapshot isolation.
  4. Keep the same data-access code when you move from embedded tests to a server process.

What it replaces in a typical stack is the "Postgres for entities + Neo4j for relationships" split, or the layer of application code that rehydrates object graphs from JOIN results. What it does not replace yet: mature ops tooling, polyglot drivers, and the years of production war stories the older graph engines have.

Trade-offs and honest caveats

Early versioning. 0.5.0-SNAPSHOT is not a stability signal. Expect API and packaging churn. Pin carefully and treat upgrades as real work.

Java-first. Sources list Java as the supported language. The universal API story is about embedded vs remote within that JVM world, not about first-class Node or Python drivers on day one.

OrientDB DNA. Forking a large multi-model engine is both an advantage (storage and model ideas already exist) and a risk (you inherit complexity and community expectations). JetBrains using it in production for YouTrack is the strongest credibility signal available right now.

Query strategy is split. YQL for prefetch, Gremlin for graph, GQL coming later. Teams need a clear convention or they will mix styles poorly.

Ops surface. Encryption at rest, role/predicate security, and Lucene sync are real features. Distributed topology, backup story, and monitoring depth should be validated against your requirements rather than assumed from the marketing page.

For side projects and internal tools with complex typed relationships, trying the embedded jar or the console image is low cost. For a core production system outside JetBrains' own stack, wait for non-snapshot releases, clearer driver story, and independent benchmarks. The architecture is coherent; the product maturity is still catching up.

Bottom line

YouTrackDB is a credible revival of the object-oriented graph idea, backed by a vendor that depends on it and open-sourced under Apache 2.0. O(1) link traversal, DB-level inheritance, snapshot ACID, and TinkerPop/Gremlin support form a coherent package for Java teams modeling dense, typed domains.

It is not yet the safe default. Snapshot versioning, Java-centric support, and a forked multi-model codebase mean you adopt for the model fit, not for ecosystem inertia. If your domain is already a graph of polymorphic objects and you are tired of faking that in tables or dual stores, put it on the evaluation shortlist and run the console image this week. If you need proven polyglot graph ops at scale, the older engines still own that lane until YouTrackDB ships hard releases and independent numbers.

Sources & further reading

  1. YouTrackDB is a general-use object-oriented graph database — github.com
  2. YouTrackDB — youtrackdb.io
  3. Database of Databases — YouTrackDB — dbdb.io
  4. Youtrackdb Alternatives and Reviews — libhunt.com
Lenn Voss
Written by
Lenn Voss · Cloud & Infrastructure Writer

Lenn writes about cloud platforms, Kubernetes internals, and the infrastructure decisions that quietly make or break engineering organizations. Based in Berlin's vibrant tech scene, they have a talent for turning dense platform-engineering topics into prose that people actually finish reading.

Discussion 1

Join the discussion

Sign in or create an account to comment and vote.

Chloe Martin @devrel_chloe · 17 hours ago

i'm really curious to see how youtrackdb will change the way we approach complex domain graphs - what are you all building with it so far?

Related Reading