You say you evaluated Cloudant and MongoDB, among others. Why did you decide on Cloudant?
HN user
garbados
Boston web dev / evangelist - https://github.com/garbados/ - @garbados
So many kudos to Dale Harvey for driving this incredible project. CouchDB's concept of replication is itself mind-blowing, but PouchDB bringing that to the {app,client}-layer opens up untold possibilities for robust, distributed systems.
Yep! It replicates your remote database to a local store (IndexedDB on the browser, LevelDB in Node.js), so that losing connection doesn't stop your app. When you regain connection, it continues replicating as normal.
Cloudant is a hosted, managed, distributed database as a service. We're based on CouchDB, but then added clustering, then full-text search, and -- coming soon -- geo-indexing :D
BigCouch, and the clustering abilities that we're merging back into CouchDB, are open-source artifacts of the work we do on the core product. The open-source community gave us so much, and we love giving back :D
Aye, which is why putting your administrative credentials in client-side JavaScript is an unspeakably bad idea.
Instead, serve {client,user}-specific keys from the server on request, or let the user generate them through a signin process in the frontend, say by using the _users database that CouchDB and Cloudant allow.
especially after having named their product PouchDB.
Ah, PouchDB isn't our product. It's just something super awesome that we want to support and promote. In fact, it's built by Dale Harvey, who works at Mozilla.
Disclosure: I'm a developer at Cloudant.
No sweat; still figuring that out myself.
So, http://schema.org/ stores schemas describing a significant subset of all things ever. It's intended to use to mark up HTML so crawlers can more intelligently understand what's on your page. Is `avatar` a movie, a show, or a profile image?
I'm experimenting with using schema.org's schemas in databases, saving myself time modeling my data, and making the aforementioned HTML markup easier. Part of that experimentation is this API, and using it to auto-generate schemas.
Maybe, but they're all WIMPs: http://en.wikipedia.org/wiki/Dark_matter#Detection
tl;dr your system is more complicated than you realize, so scaling it will be more complicated than you think. Also, MongoDB's write lock is a pain in the ass.
Thanks! Re: callouts, duly noted for the next analysis.
Author here. I had a blast writing this. Thanks to everyone who helped me out with it. I'm constantly amazed by the compassion of the tech community.
If you spot anything you want fixed, or if you just want to check out the source code, raise an issue here: https://github.com/garbados/jepsen-couchdb
Thanks, gang :D