I’m working on a temporal NoSQL document store in my spare time called SirixDB. During a commit a new lightweight snapshot is created whereas unchanged database pages are shared among the snapshots. Furthermore the data pages, which are stored in a special key-based tries are itself versioned according to well known backup strategies or a novel sliding window algorithm.
So SirixDB is usable as an embedded library for storing and querying XML and JSON data (in a binary format) and I’ve built a temporal REST-API. I’d love to get some help and probably add Kotlin to other modules as well as to provide a nice DSL.
In the future I intend to use Apache BookKeeper for distributing a transaction log (or Pulsar), which has some advantages over using Kafka.
Currently, we are also working on a web interface to interact with the SirixDB backend and to provide sophisticated interactive visualizations to compare revisions.
Give it a try and some help from the community would be super awesome