github.com/jsulmont/xtdb

Bitemporal and dynamic relational database for SQL and Datalog. Developed by @juxt

Open this visualization on its own page →

Contributors

57

Lines of Code

22,397

From

2018-03-19

To

2022-02-10

About jsulmont/xtdb

XTDB is a general-purpose database featuring graph-oriented bitemporal indexes, developed by JUXT. It supports multiple query languages including Datalog, SQL, and EQL, with APIs available for Java, HTTP, and Clojure. The database stores schemaless documents and enables querying across both the state of data at different points in time and the validity of that data, making it useful for applications requiring rich temporal semantics.

The project follows an unbundled architectural approach centered on an immutable log and document store, allowing it to be composed from decoupled components. This design enables flexible deployment options ranging from embedded usage within application processes to cloud-native scaling, while also supporting data eviction for compliance with privacy regulations. Storage backends are pluggable and include options like Kafka, LMDB, and RocksDB, with each component published independently to Maven for granular dependency management.

XTDB is particularly notable for its support of Datalog queries, which enable complex joins and recursive graph traversals beyond what typical SQL provides. The unbundled architecture reduces deployment complexity and eliminates latency from round-trip calls when embedding nodes directly in application processes. The project is organized across multiple sub-projects within a single repository, with active community support through Zulip chat and GitHub discussions.

Share this video