Skip to content

XTDB v2 Hub

Quick links: Getting started | Documentation | GitHub | XTDB discussion forum

Over the last couple of years, we’ve been working hard on the next version of XTDB, and we’re excited to share it with you now!

To summarise, XTDB 2:

We’re now at a point where we can gather feedback on what we have so far, particularly from a usability point-of-view. Throughout the alpha process, as we work towards general availability, we’ll be spending more time improving the performance, stability and operational aspects, as well as extending its reach via client libraries for other languages.

With this in mind, we’re very much in listening mode right now - as an existing XT user and/or keen early adopter, we’d love to hear your first impressions, thoughts and opinions on where we’re headed. Please do get in touch!

Similarly, if you’d like to be kept informed about the progress of v2, drop us an email at

Coming up:

What’s new in V2?

The primary aims of V2 are as follows:

  1. Hybrid transactional/analytical processing (‘HTAP’):

    XTDB v1 is mostly targeted towards transactional queries - in v2, we’ve improved the support for OLAP queries, to reduce the need for users to write and maintain ETL processes to a separate OLAP system.

    As part of this, we’ve ‘separated storage from compute’ - data that is not accessed as often (historical data, say) can be kept in significantly cheaper storage (e.g. Amazon’s S3).

    Additionally, data in XT is now all stored in the open Apache Arrow format, and we have a shiny, new, fast, columnar query engine.

  2. First-class SQL support:

    While we obviously love Datalog, it’s hard to deny the position of SQL in our industry - there’s such a wealth of knowledge, experience and tooling for SQL that you can now use with XTDB.

    XTDB 2 therefore has first-class support for two query languages - one is SQL, the other is ‘XTQL’ (#4). They are fully interoperable - data entered with either SQL or XTQL can be queried with the other.

    In order for the two to be interoperable, documents in XTDB now live in specific, but dynamic tables - same as you would in an SQL database, but there’s no requirement for up-front schema, and no requirement for all of the documents in a table to have the same column types, or even the same columns.

  3. Full bitemporality:

    Where XTDB has previously been optimized for point-in-time historical queries, v2 now supports ‘cross-time’ queries, e.g. temporal joins and temporal range scans. This unlocks the complete history of data for rich analysis.

    We support the SQL:2011 standard for bitemporal functionality, and it’s built into the heart of XTQL too.

  4. XTQL:

    … because it just wouldn’t be XTDB without also having a more data-oriented, composable query language!

    XTQL is inspired by the strong theoretical bases of both Datalog and relational algebra. These two combine to create a joyful, productive, interactive development experience, with the ability to build queries iteratively, testing and debugging smaller parts in isolation. XTQL is also highly amenable to being dynamically generated - because, as an industry, haven’t we all spent enough time constructing SQL strings (not to mention avoiding the concomitant ie injection attacks)?

    XTQL also has DML operations - so, a lot of use cases that previously required transaction functions for strong consistency can now use XTQL’s declarative ‘insert’, ‘update’ and ‘delete’ transaction operations. These have full access to the current state of the database, the full query engine, can be submitted to the transaction log without pre-registration, and are evaluated on the single writer thread.

    It’s available in both JSON and EDN, with other client libraries to come in the near future.

    For more information about XTQL, see our ‘What is XTQL?’ article.

Main differences to 1.x

XTDB 2.x is very much in keeping with the core ideas and concepts behind XTDB 1.x - you’ll still find a schema-less, documented-oriented database with bitemporal immutability as standard. That said, with such a major release, there’s obviously plenty that’s new and/or improved:

What’s happening to 1.x?

Rest assured, version 1 of XTDB will remain stable and supported with security and bug fix releases for the foreseeable future - we have a vibrant community and existing install base that we’re very proud of.

Getting in touch

We’d love to hear from you - please do get in touch:


James, Jeremy and the XTDB Team