Giter VIP home page Giter VIP logo
XTDB Logo

XTDB is an open-source immutable database with comprehensive time-travel. XTDB has been built to simplify application development and address complex data compliance requirements. XTDB can be used via SQL and XTQL.

XTDB 2.x is in 'beta' whilst we collaborate closely with our Design Partners ahead of General Availability; if you are looking for a stable release of an immutable document database with bitemporal query capabilities, we are continuing to develop and support XTDB 1.x at https://github.com/xtdb/xtdb/tree/1.x.

Major features:

  • Immutable - XTDB is optimised for current-time queries, but you can audit the full history of your database at any point, without needing snapshots or accessing backups.

  • 'Bitemporal' - all data is accurately versioned as updates are made ('system' time), but it also allows you to separately record and query when that data is, was, or will become valid in your business domain ('valid' time).

  • Dynamic - you don’t need to specify schema up-front before documents (rows with arbitrarily nested data) can be inserted.

  • Speaks both SQL and XTQL - a full SQL dialect that implements the bitemporal functionality as specified in the SQL:2011 standard, available over both HTTP and the Postgres wire protocol for compatibility with existing experience and Postgres-related tooling.

  • Cloud native - the ACID, columnar engine is built on Apache Arrow and designed for object storage

  • It is written and supported by JUXT.

Inside-out Architecture

XTDB embraces the transaction log as the central point of coordination when running as a distributed system.

What do we have to gain from turning the database inside out?

Simpler code, better scalability, better robustness, lower latency, and more flexibility for doing interesting things with data.

— Martin Kleppmann
XTDB 2.x Architecture Diagram

XTDB 1.x

XTDB 1.x is a mature product offering that is used in production by many organizations, and its ongoing development is focused on hardening and performance. XTDB 1.x is an embeddable database that emphasizes in-process JVM usage to enable advanced functionality like user-defined transaction functions, speculative transactions, programmatic Datalog rules, and more.

XTDB 2.x’s initial objective is to take the key principles embodied in XTDB 1.x — immutability, schemaless records, and temporal querying — to a mainstream audience.

XTDB 1.x

XTDB 2.x

Status

Stable

Beta

Initial Stable Release

2019

2024-2025

Query languages

EDN Datalog

XTQL + SQL:2011

Bitemporal Querying

Timeslice only (point-in-time)

Fully bitemporal - SQL:2011 and beyond

Query focus

OLTP

OLAP + OLTP ('HTAP')

Storage & Compute

Coupled (nodes are full replicas)

Separated (cost-effective scale out)

Primary Storage Format

Custom Key-Value encodings

Columnar Apache Arrow

-

-

-

Immutable Semantics

Yes

Yes

Online Transactions (ACID, strong consistency)

Yes

Yes

Always-On Bitemporality

Yes

Yes

Dynamism (ad-hoc graph joins, union typing, schemaless, etc.)

Yes

Yes

Questions, Thoughts & Feedback

We would love to hear from you: [email protected]

XTDB is licensed under the Mozilla Public License, version 2 or (at your option) any later version.

Copyright © 2018-2024 JUXT LTD.

XTDB's Projects

arrow icon arrow

Apache Arrow is a cross-language development platform for in-memory data. It specifies a standardized language-independent columnar memory format for flat and hierarchical data, organized for efficient analytic operations on modern hardware. It also provides computational libraries and zero-copy streaming messaging and interprocess communication. Languages currently supported include C, C++, Java, JavaScript, Python, and Ruby.

next.jdbc.xt icon next.jdbc.xt

Experimental extension of next.jdbc to work with XTDB 2.0 (snapshots)

pg-play icon pg-play

A small service to run a new in-memory XTDB server on every PG connection

sakila-playground icon sakila-playground

An XTDB v2 playground containing the 'Sakila' (MySQL) film rental sample dataset

templates icon templates

`deps-new` templates to create an XTDB 2.x playground

traderx icon traderx

Tech Sprint Fork | Board: https://github.com/orgs/xtdb/projects/32

xt-fiddle icon xt-fiddle

The code behind XT play, a web tool for exploring the XTDB database

xtdb icon xtdb

An immutable SQL database for application development, time-travel reporting and data compliance. Developed by @juxt

xtdb-kaggle icon xtdb-kaggle

A small XTDB utility to download CSV datasets from Kaggle and turn them into XTDB transaction operations.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.