CouchDB as the Personal Database
While attending the Berlin Buzzwords NoSql conference, Jan Lehnardt (@janl) one of conference organizers and co-author of CouchDB: The Definitive Guide (a free O'Reilly book). presented a talk titled: "Making Software for Humans - CouchDB and The Usable Peer-to-Peer Web".
Jan ethusiastically spoke about his views of couchdb's important core features, being:
- ease of installation
- document based
- JSON as the common subset of data types shared by all programming languages
- Well behaved HTTP/REST interface and API
- Clean and simple two tier applications (html+javascript in the browser + couch+javascript as server)
- Couch Apps
- Ability to scale up and DOWN
- Availability on many platforms/devices, also mobile (Android, Nokias Maemo/MeeGo and hints on iPhone versions)
- Built in synchronisation, conflict handling and replication
- Performance
- Views generated via map/reduce in javascript
- Database change notification support via HTTP-Socket
Jan also stressed privacy issues and ownership of data, mentioning facebook and the diaspora project. One proposed solution could be to keep more personal data (or at least a safe copy) in a local couchdb instance. ("Every machine should run a webserver anyway - that is one the original ideas of the web."). If you have those instances on any of your machines then information as:
- contacts
- appointments
- bookmarks and browse history
- even email and IM messages
could be stored as documents in the database and automatically synched (on the database level) to couchdb instances on all the other devices you use. The impact of applying this thought could be immense. Having just one fast storage engine and storage format for all this kind of personal data could lead to cleaner document formats across all applications. It would be much easier to write any number of clients for some of this content as you don't have to care for storing, searching and backing up the data and the interface is very clean. Creating machine local mash-ups (that can extend into the cloud) should also become much easier.
During the break some participants discussed ways of architect solutions in this lean two tier way. If you use HTML5 and javascript in the browser as the client, it runs on all platforms. CouchDB+javascript via REST would be your server (with all the HTTP infrastructure in front of it). And node.js+javascript can be used for the heavy lifting. So it would be possible to put your business logic into javascript libraries and reuse it at any part of your architecture.
The videos of the conference will be available for free in a few days.
Yes, we do this already for developer support apps :)
by
Adam Nemeth
The kanban is based on SimpleKanban (which itself is based on jQuery), the requirements tool is based in extjs.
Both were one or two workdays to write for a guy (different authors), sometimes we patch them to solve our needs better.
Hate to be cynical, but...
by
Nicholas Calugar
Re: Hate to be cynical, but...
by
Neil Murphy
Re: Hate to be cynical, but...
by
Michael Hunger
Michael
Video
by
Joao Cerdeira
Nice perspective, I think this is the future because I want to have my contact shared with my EEEPC, Comapany Laptop and my Android, but I don't want to give this information to Google or others.
I'm a developer and if you want I can help you to move on with this idea.
Can you send me the link to watch this presentation ?
"The videos of the conference will be available for free in a few days."
Regards,
JC
Educational Content
Large-Scale Continuous Testing in the Cloud
John Penix May 24, 2013
Managing Build Jobs for Continuous Delivery
Martin Peston May 24, 2013
Clojure in the Field
Stuart Halloway May 23, 2013




Hello stranger!
You need to Register an InfoQ account or Login to post comments. But there's so much more behind being registered.Get the most out of the InfoQ experience.
Tell us what you think