innoq / statuses

statuses
Apache License 2.0
13 stars 14 forks source link

external DB #174

Open phaus opened 9 years ago

phaus commented 9 years ago

Since I do have only limited Knowledge about Clojure, how difficult would it be to use a real DB (like MySQL) as a Backend?

stilkov commented 9 years ago

It wouldn’t be too hard. But why would we want to do that?

phaus commented 9 years ago

If we want to use this software as an example for scaling over instances, having a Database in the Backend and a LB in the Frontend would be nice. Not that important though

stilkov commented 9 years ago

Very good point, at the moment, scaling it by firing up additional instances would kill it :-)

We can essentially pick any datastore we like. Given that, I suggest we go with one that scales horizontally. A simple key/value store would be sufficient, a doc db would work as well.

The datastore itself needs to be refactored using a protocol (Clojure’s interface idiom), one implementation would use the existing file storage, the other one the DB.

Any suggestions? Riak? Mongo?

mvitz commented 9 years ago

I would like to do the protocol refactoring as this is on my "things to do in statuses" list. But if anyone else has time feel free to do it ;-)

pgh commented 9 years ago

Cassandra would be a good fit, wouldn’t it?

stilkov commented 9 years ago

The last time I played with it, Cassandra was a nightmare to set up. Has this changed?

pgh commented 9 years ago

docker run …

:-)

phaus commented 9 years ago

at least that won't be a problem for that specific use-case, since we can drop Cassandra into Mesos as well: http://mesosphere.github.io/cassandra-mesos I just need a proper application configuration.

stilkov commented 9 years ago

Those who do the work should be the ones making the decisions, so go ahead.