The landscape

Ledger and fact databases

XTDB

An open-source bitemporal SQL database that keeps every version of every row, by when it was true and when it was recorded.

xtdb.com · founded 2019 (as Crux; rename to XTDB later, date unverified) · London, UK (JUXT Ltd) · researched 2026-10-10

Scope
XTDB records two times for every row, valid time (when it was true, set by you) and system time (when the database learned it, set automatically), and lets you query any combination with SQL:2011 syntax over the Postgres wire protocol. It is general-purpose infrastructure aimed at audit and compliance; it has no accounting model, connectors or financial features.
Backing
Built by JUXT Ltd, a London engineering consultancy acquired by Grid Dynamics Holdings (NASDAQ: GDYN) on 26 September 2024. No separate venture funding found.
Serves
developers, enterprise
Covers
ledger, reporting
To ownpurse
Design cousin. XTDB keeps the two times ownpurse needs, when a thing happened and when the record learned it, and shows how to query them with plain SQL. ownpurse needs the same two clocks for back-dated corrections from Xero and banks.

What it is

XTDB is an open-source database, MPL-2.0, built by JUXT in London, for “development, reporting and compliance for immutable systems.” Every row carries two times. Valid time is “a user-managed dimension” for backfilling and out-of-order updates; system time is set automatically and “represents the audit history of all changes to records” (key concepts). It builds on the bitemporal parts of SQL:2011.

How it works

You write ordinary SQL. An UPDATE or DELETE does not destroy the old row; each change “sits alongside the previous versions of that row.” DELETE is a valid-time operation; for data that must go, ERASE removes it across all valid and system time, for cases like GDPR (transactions). Queries read the past with FOR VALID_TIME AS OF and FOR SYSTEM_TIME AS OF, or set a basis for a whole query with SETTING DEFAULT SYSTEM_TIME (SQL overview). BEGIN ... WITH (SYSTEM_TIME = ...) lets you backfill history, as long as you do not go earlier than any committed transaction.

The 2.0 release separated storage from compute: hot data on compute nodes, history on object storage such as S3, an Apache Arrow columnar engine, nested data with schema inference, and “zero-cost snapshots.”

Data and access

You run it, so you hold everything. It speaks the Postgres wire protocol and FlightSQL, so psql, BI tools and drivers in eleven languages connect without a bespoke client (docs). Debezium ingestion brings change data in from other databases. Support, consulting and training are sold on request; there is no price list, and it is on the AWS, Google Cloud and Azure marketplaces.

Agents

There is no XTDB MCP server or AI feature. The site positions it as an audit layer “for durable orchestration workflows and agentic workflows,” and the blog has a September 2026 post on fraud detection. Postgres compatibility is the practical agent story: anything that can talk to Postgres can query its history.

Customers

JUXT pitches XTDB to regulated industries and financial services, but names no customer counts. The repository has about 3,100 stars and nearly 9,700 commits. There are no review-site listings.

History

XTDB began as Crux in 2019, a Datalog database over documents with valid and transaction time, and was renamed XTDB in its 1.x line. Grid Dynamics acquired JUXT on 26 September 2024. Version 2, a rewrite around SQL, went generally available in June 2025; 2.1 followed on 1 December 2025 and 2.2 was in beta by September 2026.

For ownpurse

XTDB is the clearest reference for the second clock. A Xero invoice dated in March but entered in May, or a bank line that posts days after the swipe, needs both times: when it happened and when the record learned it. XTDB shows those can be first-class and queried in SQL that people already know. Where ownpurse differs is the unit and the place: ownpurse keeps every source’s claim side by side as facts with provenance, in one file on the owner’s machine, where XTDB upserts a row by id into a server you run. Its Postgres-wire approach is worth a thought for ownpurse too: a read-only SQL surface over the record would let existing tools and agents query it with nothing new to learn.

Data and access

Public API
Yes. SQL over Postgres wire protocol and FlightSQL; XTQL; Arrow (ADBC); HTTP server moved to a labs module in 2.0
Auth
As configured on your own deployment
Limits
None imposed by a vendor; your hardware
What access costs
Free and open source; production support, consulting and training priced on request
Export
Full: you own the log and object storage; SQL over every version
Notes
Storage and compute are separated: hot data on compute nodes, history in object storage such as S3; a log (Kafka is one option) sequences transactions. Drivers listed for C, C#, Clojure, Elixir, Go, Java, Kotlin, Node.js, PHP, Python and Ruby.

Price

Model
Open source; paid support and consulting
Entry
Free
Top
Production support, price on request
Notes
Also listed on AWS, Google Cloud and Azure marketplaces; no public price list.

Agents

MCP
none
AI features
None in the product as of October 2026. The site pitches a "decision auditability layer for durable orchestration workflows and agentic workflows"; a September 2026 post covers fraud detection with temporal SQL.
Agent writes
Through SQL like any client.
Approval
None built in.
Notes
Because it speaks the Postgres wire protocol, generic Postgres MCP servers should work against it (not tested). The repository carries AGENTS.md, CLAUDE.md and .mcp.json for its own contributors.

Integration and customers

Connects to
Postgres-compatible drivers and BI tools; native Debezium ingestion for change data from other databases; ATTACH (2.1) to integrate other sources.
Notes
Postgres compatibility is its main integration story: existing tools work without a bespoke client.
Scale
No public customer or user counts found; GitHub shows about 3.1k stars and 193 forks (October 2026).
Ratings
No G2, Capterra or Trustpilot listings found.
What customers say
Not checked against review sites or forums this pass. Developers generally credit its clear bitemporal model; the move from 1.x Datalog documents to 2.x SQL asked existing users to migrate.

Timeline

  1. 2019

    Released as Crux by JUXT (month unverified)

  2. 2021

    Renamed XTDB; 1.x line with Datalog over documents and two times (date unverified)

  3. 2024-09-26

    Grid Dynamics announces its acquisition of JUXT

  4. 2025-06

    XTDB 2.0 generally available: SQL, Postgres wire, Arrow columnar engine, object-store history

  5. 2025-12-01

    XTDB 2.1.0 released (ATTACH to integrate other sources)

  6. 2026-07-13

    XTDB 2.2 previewed with leader election; 2.2.0 betas through September 2026

Borrow and avoid

Borrow
Two clocks on every fact (valid time set by the source, system time set by the log); SQL:2011-style FOR VALID_TIME and FOR SYSTEM_TIME AS OF queries; a query-wide basis setting so every view reads one snapshot; DELETE as a valid-time operation that keeps history, with a separate ERASE for legal removal; Postgres wire compatibility so ordinary tools can read the record.
Avoid
A server and log to run for what should be one file a person holds; upserts by id that overwrite a valid-time range (fine for state, wrong for an evidence log, where two sources' claims must both stay); a rewrite of the query language between major versions.

Sources

  1. XTDB
  2. XTDB docs
  3. XTDB key concepts
  4. XTDB SQL transactions (ERASE, DELETE, backfill)
  5. XTDB SQL overview
  6. XTDB 2.0.0 release notes
  7. XTDB releases
  8. XTDB on GitHub
  9. XTDB blog
  10. Grid Dynamics news: joins forces with JUXT (26 September 2024)
  11. JUXT

Not confirmed against a primary source

  • Crux release date (2019) and the date of the rename to XTDB (2021): not confirmed from a primary source this pass
  • Exact 2.0 GA date: the blog lists 5 June 2025, the GitHub release is dated 12 June (year confirmed by the blog)
  • Whether generic Postgres MCP servers work against XTDB without changes
  • Named customers and adoption figures
  • Price of production support
  • Deal terms of the Grid Dynamics acquisition of JUXT
  • Review-site and forum sentiment (web search budget exhausted)

ownpurse is not affiliated with XTDB or any company named here. Names are their owners' trademarks. Figures come from the company's own pages and the press, as linked, as of 2026-10-10; scores are our reading of them against the definitions in the landscape. This is not legal or financial advice.