3 ms·
CouchDB is so underrated in this space. I get it: CouchDB was a very early (the first real?) document-based database, and it got some things wrong, or at least
by gecko 11y ago
CouchDB is so underrated in this space.
I get it: CouchDB was a very early (the first real?) document-based database, and it got some things wrong, or at least weird early on (e.g. map/reduce queries, a reduce step to the map/reduce query that is actually one-to-many (on purpose! there are concrete reasons in real life you want this!), etc.).
But they also got so much right:
- The database is all HTTP, all the time. Connecting up your
choice language takes about an hour.
- Offline replication and database streaming, standardized at the
protocol level, which allows you to use various combinations of
CouchDB, Couchbase, Coucbase Lite, and PouchDB without interop
problems. Plus, it means in the early part of an app (like the 0.X
bit), I can trivially replicate the prod DB down when I'm trying
to repro something.
- You can store your HTTP assets right alongside the DB for
Firebase-like asset hosting. Throw it behind a caching service
for prod if you want.
- You can store full-blown files, which is great for lots of practical
app these days.
- Trivial replication. The scaling of CouchDB itself is honestly a
bit crappy, but Couchbase has great scaling, and since they speak
the same protocol, you can easily scale from CouchDB to Couchbase
without missing a beat.
CouchDB is actually my favorite "I just wanna hack something" database for the above reasons. No, I have not and do not know if I'd seriously recommend using CouchDB 1.6 in prod for something you expected to grow huge, but it's a great "get it done" platform like Parse or Firebase, and you can really trivially move to Couchbase as you scale up if you need to.
- sweetiewill 11y agoI couldn't agree more here and it is sharing the same protocol with Couchbase Mobile. For me, mobile apps and offline storage with Sync is the value add. I know with Parse, push notification was the big thing for them but also it was expensive overall. This is something where you can do with Couchbase and it is all free too.
- lisivka 11y agoPouchDB and CouchDB are great for prototyping of apps, but access restriction in CouchDB is broken by design: it is hard to make it correct, CouchDB is open by default, user can store anything in DB it has access to, including pr0n. If CouchDB will close DB by default AND it will be easy to specify politics by REST path AND it will be easy to restrict document schema by REST path, then I will use it in production.
- gecko 11y agoLots of databases are open by default, especially in this space (Mongo, RethinkDB, Redis, Riak, and I believe Cassandra), and Fauxton has huge warnings that you've got access turned on globally if you haven't adjusted the setting, so I'm not sure I agree with you that that's an instant fail, but I get your point. That said, in CouchDB 2, it'll be easy to programmatically restrict document information in a similar method to Firebase. I can't find the CouchDB 2 documentation itself, but https://github.com/rcouch/rcouch/wiki/Validate-documents-on-read https://github.com/rcouch/rcouch/wiki/Validate-documents-on-... , from rcouch, is the current plan. Do note that CouchDB doesn't do Firebase-like OAuth workflows, so you'd still need a thin shim in prod to handle that if you don't want to have all bespoke user accounts, all the time. (There's probably a clever way to make this work using client-side OAuth workflows, but I've never actually thought about it much.)
- lisivka 11y ago> Major security alert as 40,000 MongoDB databases left unsecured on the internet http://www.information-age.com/technology/security/123459001/major-security-alert-40000-mongodb-databases-left-unsecured-internet http://www.information-age.com/technology/security/123459001... Yes, it is great for prototyping, but it is bad for production.
- alyssoncm 11y agoParse it is a good solution for a quick app backend setup but I never realized build big things over there. To me the most important to me is no vendor lock-in I see as very important to have full control over what I'm developing. I started to use a great platform http://www.back4apps.com http://www.back4apps.com and Im happy with the results. I recommend it as a migration option
- jchrisa 11y agoThe access control limitations in Apache CouchDB are a big part of what we addressed in Couchbase Sync Gateway. Info about our Sync Function API http://developer.couchbase.com/documentation/mobile/1.1.0/get-started/get-started-mobile/cloud-sync-function/sync-function-example/index.html http://developer.couchbase.com/documentation/mobile/1.1.0/ge...
- rdtsc 11y agoYap. No other database I found has build-in master-to-master replications that works as well. Another strong aspect is crash-only data storage model. Because it uses append-only file writes, I trust it to handle power loss (VM hard stops), crashes etc. There is 2.0 coming out which will have a clustered option, so it can allow scaling a db easier (vs say making your own replicated topology + load balancer).
- OvermindDL1 11y agoWhat about Riak?