Fwd: Datomic-like db for Haskell?

* Would using a snapshot-based revision control system like Git be an option? If yes, you could use the [filestore] library.
It's not exactly what I had in mind but I'll think about it.
* Another option is to run an insertion-only relational model on really any database system you want like PostgreSQL. There is nothing about preserving history that needs special handling to be efficient.
I assume that some sort of structural sharing is needed once the collections grow above a certain size. Also some support for caching would be nice.
* Yet another option is to model your application state with history and use [acid-state]. However, acid-state only makes an in-memory Haskell value (the "database") persistent with ACID guarantees. If you mostly work with the current state, keeping the whole history in memory all the time would be a waste. Therefore this option may be less useful.
The database will probably grow bigger than the memory so this is not an option. ...and thanks for the pointers

On 2016-12-23 18:41, Ovidiu Deac wrote:
* Another option is to run an insertion-only relational model on really any database system you want like PostgreSQL. There is nothing about preserving history that needs special handling to be efficient.
I assume that some sort of structural sharing is needed once the collections grow above a certain size. Also some support for caching would be nice.
A similar option might be something like https://github.com/BardurArantsson/cqrs *However*, I'm not sure I'd actually recommend using my particular library at this time. I'm probably going to be reworking it (slowly) quite a bit and currently there's no support for persistent[1] queries (see the CQRS/ES description linked from the README). Still, the ideas are sound and pretty simple. (See the PostgreSQL package for exactly what queries CQRS/ES maps to.) [1] As in: stored on disk. Regards,
participants (2)
-
Bardur Arantsson
-
Ovidiu Deac