Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News CouchDB as the Personal Database

CouchDB as the Personal Database

Leia em Português

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.

Rate this Article