XTDB

active

by JUXT Ltd · since 2019 · also known as Crux, XTDB v2

Bitemporal SQL database on object storage that keeps every version of every row.

relationaldocumentcolumnar / olapdatabase engineopen source (copyleft)growing

Overview

XTDB (originally Crux) is an immutable database from JUXT that records both system time and valid time for every row, so you can query what was true at any point and what the database believed at any point, including retroactive corrections. Version 2 is SQL-first: it speaks the PostgreSQL wire protocol and Arrow Flight SQL, stores columnar Apache Arrow data on object storage such as S3, and adds XTQL for Datalog-flavoured queries over semi-structured records. It fits audit-heavy domains such as finance, insurance and healthcare where reconstructing history is a requirement. Write throughput and ecosystem size are modest next to mainstream SQL engines.

Strengths & trade-offs

Strengths

  • +Native bitemporality: valid-time and system-time queries in standard SQL:2011 syntax
  • +Immutable history makes audit and regulatory reconstruction straightforward
  • +Columnar Arrow storage on S3-style object stores
  • +Postgres wire compatibility for existing drivers and tools

Trade-offs

  • −Single transaction log limits write throughput
  • −Smaller ecosystem and fewer managed options than Postgres
  • −Bitemporal modelling has a learning curve

Great for

  • +Financial and insurance systems needing as-of reporting
  • +Audit trails with retroactive corrections
  • +Event-sourced systems wanting SQL over history

Think twice for

  • −High-write OLTP with hot rows
  • −Simple CRUD where history is not needed

Capabilities

Native or official first-party support · 7 of 25 tracked

✓Transactions
✓Joins
✓JSON
✓Columnar storage
✓Durable persistence
✓Compression
✓Time travel
–Secondary indexes
–Full-text search
–Vector search
–Geospatial
–Change data capture
–Triggers
–Stored procedures
–Materialized views
–TTL / expiry
–Pub/Sub
–In-memory
–Encryption at rest
–Role-based access
–Branching
–Online schema changes
–Streaming ingest
–Offline sync
–Runs in WebAssembly

Scale & consistency

Comfortable data size
Medium · ≤ 10 TB
Horizontal scaling
Manual
Multi-region
No
Transactions
Full ACID
Consistency
Strong
Schema
Flexible
Architecture
Distributed, Shared storage
Query languages
SQL, XTQL

Compute nodes scale out for reads on shared object storage; writes go through a single transaction log.

Deployment

Self-hosted Vendor-managed cloud Serverless Embedded Edge Kubernetes operator

Ecosystem

compatible withPostgreSQL
apis & protocolsPostgreSQL wire protocol, Arrow Flight SQL, HTTP
client languagesJava, Kotlin, Clojure, Python, JavaScript, Go

Alternatives to XTDB

Compare all→
DatomicRelational14.9

Immutable Datalog database from Nubank where every fact is timestamped and queries run in the app process.

xtdb vs datomic →
immudbLedger17.2

Immutable, tamper-evident database with cryptographic proofs, offering key-value, SQL and document APIs.

xtdb vs immudb →
PostgreSQLRelational93.2

The extensible, standards-first open-source relational database.

xtdb vs postgresql →
TerminusDBGraph21.0

Git-for-data document and knowledge-graph database with branches, diffs and time travel.

xtdb vs terminusdb →
DoltRelational18.2

MySQL-compatible SQL database you can branch, diff, merge and clone like a Git repository.

xtdb vs dolt →
TDSQL (Tencent)Relational0.0

Tencent's financial-grade MySQL-compatible database family: distributed TDSQL and cloud-native TDSQL-C.

xtdb vs tencent-tdsql →

XTDB FAQ

What is XTDB?

XTDB is a relational database by JUXT Ltd, first released in 2019. XTDB (originally Crux) is an immutable database from JUXT that records both system time and valid time for every row, so you can query what was true at any point and what the database believed at any point, including retroactive corrections. Version 2 is SQL-first: it speaks the PostgreSQL wire protocol and Arrow Flight SQL, stores columnar Apache Arrow data on object storage such as S3, and adds XTQL for Datalog-flavoured queries over semi-structured records. It fits audit-heavy domains such as finance, insurance and healthcare where reconstructing history is a requirement. Write throughput and ecosystem size are modest next to mainstream SQL engines.

Is XTDB open source?

Yes. XTDB is open source. License: Mozilla Public License 2.0.

Does XTDB support ACID transactions?

Yes. XTDB supports full ACID transactions, with strong consistency.

Does XTDB scale horizontally?

XTDB has no built-in sharding; scaling out means partitioning data in your application. It is comfortable at medium scale (≤ 10 TB).

How can I run XTDB?

You can self-host it.

What is XTDB best for?

XTDB is a strong fit for financial and insurance systems needing as-of reporting; audit trails with retroactive corrections; and event-sourced systems wanting SQL over history. Think twice for high-write OLTP with hot rows.

What are the best alternatives to XTDB?

Common alternatives to XTDB include Datomic, immudb, PostgreSQL, TerminusDB and Dolt. The right choice depends on your workload, scale and hosting; WhichDB's smart match ranks them against your requirements.

How popular is XTDB?

XTDB ranks #328 of 844 databases on the WhichDB Score (8.3/100), and #106 among relational databases. The score combines public adoption signals such as package downloads, GitHub activity, job posts and developer discussion.