Krisztián Kovács writes about databases, Unix tools, software project practices, and open source licensing for business readers.
HN commenters point to his NoSQL database comparison as the best of its kind, though dated, and call his obscure Unix tools list a gem.
I have a hard time keeping up with all the NoSQL engines out there. What can I do about it? I could easily evaluate, say, CouchDB in a side-project, but that's a) not necessarily going to tell me a lot about its characteristics at scale, and b) I can't do this even for the big NoSQL engines out there.
Is there a good overview? I realize that this is sort of an oxymoron -- a high level overview is doomed to fail because you can't compress the complex characteristics down to a few bulletpoints. Antirez put it this way [0]: That said I think that picking the good database is something you can do only with a lot of work. Picking good technologies for your project is hard work, so there is to try one, and another and so forth, and even reconsidering after a few years (or months?) the state of the things again, given the evolution speed of the DB panorama in the recent years.
That was a comment to a pretty good overview[1], which despite being 3 years old is still useful. Apart from the purely technical characteristics, social characteristics such as rate of updates, adoption (and by whom?), openness are also interesting. You just "know" these things for the fields you're working in, but they're very hard to tell from outside and rarely discussed.
[0] https://news.ycombinator.com/item?id=2053594
[1] http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis
Both solve entirely different classes of problem. There are functional overlaps for small problem domains, but as your infrastructure tries to do more, you may find a need to run several distinct lightweight services backed by a variety of datastores serving focused requests.
Many of you have already seen Kovacs' comparison of nosql stores. Just throw a SQL DBMS into the decision matrix. Consider how several might work together.
http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis
Fowler's microservice post is a decent introduction to the microservice architecture, which is more or less what I'm describing.
http://martinfowler.com/articles/microservices.html
Granted, this probably isn't how to get the MVP out the door. But once you grow, this architecture can prevent the formation of monoliths of pain.
Thanks latch. You're right. I genuinely feel like an idiot for asking such a vague out of place question in this forum.
To save myself some embarrassment though.. I did outline that my use case was "web analytics" and "real-time". I also suggested I was looking for high level insight.
Still though, I can understand how you might be confused. Let me be clear. I based my expectations on this list:
http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis
Just use the ENV vars, https://kkovacs.eu/opencode-go-with-claude-code/ | https://code.claude.com/docs/en/env-vars
You can use a project like GoModel to add a great gateway where you can swap out models without touching CC (or any harness) after setup. Their "virtual models" are the bee's knees: https://gomodel.enterpilot.io/docs/features/virtual-models
queues.io is a good list of message queues, but it's not a useful list. It says nothing about them, how they work, the differences or what they're suited for.
For comparison, this is a useful list for getting the feel of a technology field: http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis
One thing I always do is try to scope a database for the problem. This site[1] has been a valuable resource for myself and colleague who were evaluation the best way to store/access our data depending on what we need back.
[1] - http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis