Skip to content
0:00 / 0:00

#crux#xtdb#bitemporality

The Design and Implementation of a Bitemporal DBMS – Håkan Råberg

Metosin

9K subscribers • 22 videos on Hallway

YouTube
  • Recommended by 2 people: 2 in engineering communities.
  • Presented by Håkan Råberg
  • Made by the vendor. The company whose product it covers made or sponsored it.

Advanced. Deep dive for people who know the field.

5K views7 years ago2 recommendations

Databases and dataSystems programmingDatabase internalsLisp and Clojure

Håkan Råberg discusses the architecture of Crux, a schemaless bitemporal database that uses Kafka for its commit log and serves Datalog queries.

Bitemporality allows you to modify, enhance and correct the view of the past while also keeping all versions for audit and repeatable reads. We see this as a missing piece of the puzzle to scale up functional programming, as time and time again we have encountered similar problems in projects. Problems concerning competing timelines in different systems, a desire for immutability and purity, and a messy reality of delays and information that matures over time. While popular as a research topic in the 90s, bitemporality is only now starting to become practical due to cheap cloud storage. There's a close kinship to modern event sourcing architectures and functional programming, and we can now start rephrasing the earlier ideas in this newer light. At JUXT we decided to build Crux, a schemaless bitemporal database which uses Kafka for its commit log. It provides Datalog queries served by disposable index nodes powered by RocksDB or LMDB, each being a function of the log. This talk will look at the approach we took to build Crux, what design decisions we made and how we reached them. Crux aims to be an "unbundled" database of several pluggable components and layers adhering to "The UNIX philosophy", a bit akin to how the Clojure community favours composing smaller libraries. At the same time, there are significant technical challenges involved in making bitemporality practical, often in tension with the idea of neatly composing components.

Why it's here

2 people recommend this

What people say. Recommended as an informative and fun talk on bitemporal database design.

u/refsetin r/Clojure • Recommends

The Design and Implementation of a Bitemporal DBMS – Håkan Råberg (ClojuTRE 2019)

u/dotemacsin r/Clojure • Recommends

On “ClojuTRE 2019 videos”

I'd say that all the talks were good. Some had a lot of information and will need to be referenced again, but for a quick jolt of fun and information I'd recommend: - from Thursday, Why Isn't Functional Programming the Norm? by Richard Feldman - and from Friday, Creative Computation by Jack Rusher And at 0:19 of Håkan's talk when the crowd loses their mind at the mention of "Assembly 94". Sadly the entranced primal screams of the crowd are somewhat subsided in the recorded version.