XTDB 'core2' Research 🧪

Welcome to the XTDB research repository!

Note
Core2 now lives in the main XTDB repo, under the 2.x branch.

core2 is a bitemporal and dynamic relational database for SQL and Datalog:

  • Bitemporal means that all data is accurately versioned as updates are made (system time), and all data exists within a universal domain timeline for representing 'validity'/'effectivity' (application time).

  • Dynamic means that no upfront schema needs to be specified before records can be inserted. Complex and nested data is automatically represented using Apache Arrow types.

  • Relational means that the full spectrum of traditional SQL database capabilities is available - including joins, transactions, bag/multiset semantics, three-valued logic, multiple N-ary relations etc.

  • SQL means immediate accessibility for a mainstream audience, but also includes an eye to the future with preliminary Flight SQL driver support.

  • Datalog means a programmer-friendly API for complex relational querying that bypasses SQL’s verbose JOINs and compositional challenges.