Subject: building MSTs->CRDTs-> Re: The database I wish I had

From: Jeff Rhyason <[email-masked]>
Date: Tue, 1 Sep 2020 18:35:08 -0700

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

---

From: EuAndreh <[email-masked]>
Date: Wed, 02 Sep 2020 22:06:59 -0300

Jeff Rhyason <[email-masked]> writes:

> 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.