409 karma · joined November 26, 2007
CouchDB is a document database that can be essentially indefinitely clustered to grow and shrink with your application / traffic demands.
It also comes with a unique replication protocol that allows you to synchronise casually connected instances (say offices around the world, or mobile devices and a cloud) much more like git uses push & pull. No other database really puts that into an open source / open government project.
There’s tons more cool stuff that CouchDB does and its being used in mission critical infrastructure that you’re relying on every day :)
> Querying in a more ad-hoc way (vs. building indexes ahead of time and querying by key, etc) is a bit janky / not 1st class (I think mango addresses this but not entirely sure).
Mango does address this.
> The JS query server engine is/was fairly old
On the one hand, running an old JS engine isn’t big trouble for CouchDB, especially with transpiration tools available, but we now support modern SpiderMonkey up to version 91. The main benefit for CouchDB users is modern JS syntax being available.
> The authorization model is... unique.
per-doc-auth is in the works, no ETA, and the first iteration is going to be limited, but it’ll address the main issues for db-per-user users.
We are working on per-document-access-control at the moment, to support this use-case out of the box
CouchDB does SSL natively, but we do recommend HAProxy.
OTOH, publicly known big companies using CouchDB include Apple and IBM.
And I worked on a team that used CouchDB’s offline capability in the 2015 Ebola crisis in West Africa. That work also lead to the first Ebola vaccine ever.
That’s why we do CouchDB :)
CouchDB is a community-run Apache Software Foundation project (that has corporate contributors as well as individual contributors) at a much lower scale than MongoDB.
Of course MongoDB’s marketing is better, they are spending a lot of money on it. If you’d like to help out with CouchDB’s marketing, we can always use another helping hand :)
They are very different databases. But since they have come up are around the same time and because they look very similar on the surface, you might think you chose between them.
But when you look more closely at detail decisions on the technical details, at almost every point, where CouchDB goes one way, Mongo went the other way.
I’m not saying either decisions are better or worse, it’s just that they are very different database that you should evaluate on their merits, not just superficially.