Versioned · Fast · Branchable

The memory model for intelligence

When people or agents change shared data, you need to understand what changed and decide what to keep. Datahike lets your application query past states, develop a proposal on a separate branch, and compare it with the accepted data.

Start with relational queries and durable storage in your application or on a server. History and branching use the same database model.

What would this change affect?

Consider a shared project plan. Someone proposes a later delivery date, with changes to several dependent tasks. The team needs to review the revised plan while work continues against the accepted one.

  1. 1Develop the proposal

    Create a database branch and make the related edits there. Unchanged data is shared, so starting a branch does not copy the full database.

  2. 2Compare the consequences

    Your application recalculates the schedule from the proposed data. Query both database states to show the changed dates and tasks.

  3. 3Review and accept

    Show the proposal to the team and apply the agreed changes. The original database value stays available to explain what the review was based on.

Datahike provides the database states and queries; your application supplies the scheduling rules and review process. The same pattern supports an editor's drafts, a data correction, or a proposal generated by an agent. Simmis uses it for shared knowledge and proposed changes.

See how branches are compared and merged →
Coming from InstantDB? Compare the application and migration options →

Try it in your application

Run a query, retain a database value, and compare it with a later state. Choose your starting point:

Each path uses the same database model. Clojure exposes it most directly: immutable values in the language, a live REPL, and the APIs Datahike itself uses.

Compatible readers can query shared storage directly, while Datahike Server gives network clients conventional APIs and centralises writes. Compare the deployment models →

In production

Selected production uses of Datahike.

"Datahike is a foundational part of the stub story, going from a rough prototype all the way to finding product-market fit, generating revenue, and raising capital. It's been a critical part of our journey, and if I had to do this all again, you best believe I'd use Datahike again."
Alex Oloo Cofounder & CTO, Stub, accounting platform for 5,000+ SMBs across South Africa

The Swedish Public Employment Service has used Datahike in production since 2024 for the JobTech Taxonomy. It contains more than 40,000 labour-market concepts used by thousands of caseworkers each day. Their evaluation also compares Datahike with Datomic.

Arbetsförmedlingen Swedish Public Employment Service, government production deployment

Heidelberg University built emotrack on Datahike, a longitudinal emotion tracking application for psychological research, capturing and querying time-series self-report data across study participants.

Heidelberg University Psychological research, emotion tracking application

Extend beyond the database

Start with Datahike for relational data and history. The wider ecosystem brings snapshots and branching to analytical queries, vector search and full-text search.

From database states to running applications

These projects apply snapshots and branching to reactive programs, agent workflows and collaborative applications.

Yggdrasil defines the shared snapshot and branching protocols used across the stack.

Notes

Worked examples, deployment choices and benchmarks from the Datahike ecosystem.

Work with us

If you need help getting Datahike into production, we can help with integration, custom development, and support contracts.