4 ms·
Author here: Whirlog is a minimal versioned log structured relational DB implemented in Common Lisp. It's a design I've been playing around with in several la
by codr7 5y ago
Author here:
Whirlog is a minimal versioned log structured relational DB implemented in Common Lisp.
It's a design I've been playing around with in several languages to solve my issues with traditional databases, complexity and poor integration being two of them.
I've also grown fond of versioning, being able to track changes through time; which is uncommon and tricky to implement well on the application side.
I've written two non-trivial webapps on top of similar designs that have been running without a hitch for over a year now.
I'm more than happy to answer any questions posted in this thread!
- User23 5y agoIs this inspired by what Chris Okasaki calls persistent data structures in his marvelous little book?
- codr7 5y agoSorry, no. I bought the book at one point during my Haskell years but found it too dry for my taste at the time.
- george_ciobanu 5y agoCheck out Datomic
- zelphirkalt 5y agoTo add more detail, I seem to remember, that "persistent" in that book means the following: Once you have a handle on the data structure, you can perform any pure operation, which is intended for that data structure and your handle will still point to the same data structure, because "modified" versions are not really "modified" as in someone performing a mutation on the data structure, but actually new instances of the data structure, which might share parts with the original one. This property is very nice to have for working with the data structure.