Datomic-like db for Haskell?

Is there any package in Haskell that provides something similar to Datomic http://www.datomic.com/? Basically what I am looking for is a database which could keep all the versions of my data in an efficient way, the same way the persistent data structures do. Ideally it should be implemented over some scalable storage. I looked at Datomic itself but I couldn't find a Haskell client library. The only way to connect to it from a Haskell application is through the REST server which they have just deprecated ( http://docs.datomic.com/rest.html) Thanks!

Basically what I am looking for is a database which could keep all the versions of my data in an efficient way, the same way the persistent data structures do.
Ideally it should be implemented over some scalable storage.
There are a few options, if you consider that you don't necessarily need special support for versioning: * Would using a snapshot-based revision control system like Git be an option? If yes, you could use the [filestore] library. * 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. * 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. [acid-state]: https://hackage.haskell.org/package/acid-state [filestore]: https://hackage.haskell.org/package/filestore Greets ertes
participants (2)
-
Ertugrul Söylemez
-
Ovidiu Deac