Crate: Elastic Data Store
crate.io
crate.io
I even implemented some custom aggregation functions to check out the code, and it was easy. But what I liked the most was the responsiveness of the devs, the project seems to be moving at a good pace and the devs were very helpful over github.
I wished the site made clear that it's using ElasticSearch under the hood, though. I don't know a thing about ES so I can't really comment on how the sharding, partitioning and replication are achieved. What I can remember from aphyr's blog (jepsen series) is that it's not recommended as a primary database though.
It's still live under /packages/: https://crate.io/packages/requests/
This confused me greatly as well...
Thanks for the heads up.
I'm curious in what way Postgresql doesn't fit that, for you. Is it not "simple"?
More importantly it isn't elastic. Constructing a heavy load or large database server cluster is difficult. More complicated than it should be. If there is on offer an elastic solution with simple arrays built in, I'm all over it right now.
Blob support in postgresql is seen as something you shouldn't do as a best practice. If it's a data store then what I want is to be able to use it to store data easily without a fuss. Postgresql is the king right now and I use it but I'm very open to looking at alternatives.
I don't relate much to the first paragraph though. You don't have to include a module to use arrays. I'm mystified by the implication that data integrity, normalization, and ad-hoc querying are useless for "modern application development".
Looking into it again now it seems I was confusing Arrays for Hashes, with regard to the hStore extension.
The application is in charge of what data goes into the database. It is performing sanitisation, validation, returning errors, all of that before persisting data. I don't want to have to deal with errors from the database nor do I want to have to manage data integrity from two separate locations.
I want to be able to tell the database to store something and it stores it modern development frameworks can handle data integrity stuff.
Separate that out and share it between however many applications you want you should be able to swap out data stores not be confined to them.
I've also never made an application that doesn't eventually want to do something that the ORM I'm using doesn't know how to do, at which point it makes a lot more sense to interact directly with the database than to shrug my shoulders and say "I guess I can't do that".
Maybe my applications just aren't "modern" enough.