It's amazing to see this discussion. Let's keep it going!
My friend and I started Indelible[1] (now defunct) for a lot of the same reasons you want to build a datastore -- there aren't enough options for a datastore that's immutable, relational, highly-vaailable, and private.. We're still super-passionate about the ideas, love Datomic but want something a bit different, decided not to commercialize it and start more simply with just the data structure. We don't want a huge thing, just a library, to keep coordination down; the complexity doesn't spread out of the client.
Where we are at now is we have a great versioned immutable B-Tree-like structure that is the foundation for the verioned and diffable database we want. FWIW The Go implementation of the tree is at https://github.com/jrhy/mast . We have plans to do a CRDT based on it, possibly add an SQL layer, but frankly, having a strongly-consistent, verioned + diffable tree, is pretty good for now. We'd love to collaborate!
[1] Indelible API Reference http://htmlpreview.github.io/?https://github.com/indeliblesystems/indelible/blob/master/doc/000-API-ref.html
Jeff Rhyason <jeff@rhyason.org> writes:
> It's amazing to see this discussion. Let's keep it going!
>
> My friend and I started Indelible[1] (now defunct) for a lot of the
> same reasons you want to build a datastore -- there aren't enough
> options for a datastore that's immutable, relational,
> highly-vaailable, and private.. We're still super-passionate about the
> ideas, love Datomic but want something a bit different, decided not to
> commercialize it and start more simply with just the data structure.
> We don't want a huge thing, just a library, to keep coordination down;
> the complexity doesn't spread out of the client.
>
> Where we are at now is we have a great versioned immutable B-Tree-like
> structure that is the foundation for the verioned and diffable
> database we want. FWIW The Go implementation of the tree is at
> https://github.com/jrhy/mast . We have plans to do a CRDT based on
> it, possibly add an SQL layer, but frankly, having a
> strongly-consistent, verioned + diffable tree, is pretty good for now.
> We'd love to collaborate!
This looks interesting! I'll take a deeper look later.
I'll be particularly interested in seeing the implementation of
persistent B-Trees that are durable.