1
votes

There are ways to replace SQL databases in Haskell, Clojure:

http://www.datomic.com/ (Clojure)

https://github.com/dmbarbour/haskell-vcache

https://hackage.haskell.org/package/acid-state

However I cannot find a library for doing so in Scala , using akka-persistence.

I wonder why ?

I heard that https://www.querki.net/ is doing something similar (https://github.com/jducoeur/Querki), but it not a copyleft library (unlike acid-state for Haskell).

I am wonder if I am looking at this from the wrong angle, I am wondering why other languages have these solutions and Scala does not seem to have it, maybe there is a fundamental reason for that ? Am I missing something ?

1
I do not know if i have understood wrong your question, but try to have a look at this project: Actorbase. It's an embryonal implementation of a key-value database using the Actor model.riccardo.cardin
Interesting, is it using akka-persistence ? It does not seem to.jhegedus
At the moment no. But, it is a possible implementation.riccardo.cardin
Very interesting ! It seems like I am implementing something like that myself.... (for my own use).jhegedus
If you want, we can't keep in touch and discuss common solutions in pvt. Let me know if you are interested.riccardo.cardin

1 Answers

2
votes

The libraries you mention do quite different things:

akka-persistence Store the state of an actor. If you have an actor that uses internal state. This is quite specialized.

acid-state serializes Haskell data to disk.

Datomic is a system for overriding temporal data in a way that does not destroy the original data.

Object stores works well with dynamic languages like Clojure and Python, since they work dynamic data that can be serialize to disk.

I found it much nicer to work with MongoDB in Python than in Scala.

When the NoSQL movement started there were initial excitement, but after using these systems some people realized that you are giving up good properties that databases have.

Datomic is an interesting project with new ideas. There is a Scala clone of it. Not sure how stable it is: https://github.com/dwhjames/datomisca