XTDB
activeby JUXT Ltd · since 2019 · also known as Crux, XTDB v2
Bitemporal SQL database on object storage that keeps every version of every row.
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
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
Ecosystem
Alternatives to XTDB
Immutable Datalog database from Nubank where every fact is timestamped and queries run in the app process.
xtdb vs datomic →Immutable, tamper-evident database with cryptographic proofs, offering key-value, SQL and document APIs.
xtdb vs immudb →The extensible, standards-first open-source relational database.
xtdb vs postgresql →Git-for-data document and knowledge-graph database with branches, diffs and time travel.
xtdb vs terminusdb →MySQL-compatible SQL database you can branch, diff, merge and clone like a Git repository.
xtdb vs dolt →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.