Skip to content

CouchDB – Interview with Chris Anderson and Noah Slater

2009 August 24

CouchDB - The Definitive GuideThe following interview with CouchDB creators Chris Anderson and Noah Slater took place in May 2009, before their book, CouchDB: The Definitive Guide (written in conjunction with fellow CouchDB creator Jan Lehnardt) was published. The Rough Cut had just been released.

CouchDB: Rough Cuts Version has now been out for several months and the book should be published in September. The title of this book did not mean anything to me so I thought I should talk to the authors – here are the transcripts of these talks.

What is CouchDB?
Here’s the official blurb from Apache CouchDB is a distributed, fault-tolerant and schema-free document-oriented database accessible via a RESTful HTTP/JSON API. Among other features, it provides robust, incremental replication with bi-directional conflict detection and resolution, and is queryable and indexable using a map reduce view engine with JavaScript acting as the default view definition language.

Why create yet another database?
The status quo for data storage (SQL based RDBMSs) was designed 25 years ago before anyone had dreamed of the Web. CouchDB is designed with the Web in mind. This means it is well suited for giant data sets and evolving data models, while providing a RESTful HTTP API that most web developers will find familiar.

Why is it different, and why should people use it?
It is simpler than RDBMS systems because it leaves out many of the features (joins, constraints, etc) that turn out to cause trouble when your website becomes popular. It is designed for robustness against hardware failure, and to have an easy data distribution and replication story.

Who uses it?
Currently there are some big customers (BBC and others) who are using it to provide a uniform storage API for in-house development. There is also a movement of people using it for web applications because it makes their lives easier.

How did you get involved with CouchDB?
(Chris) I started using it for my web-crawling startup, because the simplicity of the API appealed to me. Doing things the CouchDB way greatly simplified my codebase (even though I had to rethink a lot of assumptions.) After having that experience once I knew I never wanted to go back.

(Noah) I’m a bit of a hypertext fetishist. Serving up documents via HTTP is great, but I became interested in CouchDB because it lets me serve up documents, and then lets me edit them too! There are a few other technologies, like WebDAV, that let you do that over HTTP, but here is this amazingly elegant solution that doesn’t require protocol extensions or any other annoying cruft.

Of course, CouchDB also happens to be a very powerful database! A document database isn’t for everyone, but if your application revolves around organising and serving up documents, CouchDB hits a real sweet spot.

The Rough Cut is available now: does this affect how you write the book?
Yes it is good because people challenge us. We’re thinking about moving what is now the 1st chapter to later in the book. It’s a comparison to relational databases, which is nice for illustration of differences, but people were taking it as a call-to-arms. We don’t mean to say that CouchDB is outright better, just that it has a different set of strengths. Without reader feedback we wouldn’t have known the impression we’re making.

Will you be giving talks in Europe, OSCON?
Yes, Chris is speaking at ApacheCon EU at the end of March, JSConf in DC and the Erlang Factory in SF at the end of April, and hopefully OSCON in SanJose.

What’s next with CouchDB?
We’re working on baking multi-node support so that CouchDB running on a single server, or on a cluster of thousands, will look the same to developers and end users.

Are you involved with other projects? If so what are they?
Chris is involved in the CouchApp project, which aims to make standalone JavaScript application development on CouchDB simple for newcomers.

Leave a Reply