FOSDEM '10 is a free and non-commercial event organized by the community, for the community. Its goal is to provide Free and Open Source developers a place to meet. No registration necessary.


Interview: Benoît Chesneau

Benoît Chesneau will give a talk about CouchDB at FOSDEM 2010.

Could you briefly introduce yourself? And how are you involved in the CouchDB project?

Hi, I'm Benoît Chesneau, I will be short here: I don't like so much speaking about myself. So, I'm a French web craftsman, the first time I published a website was in 1995. Since then I've worked with and in the web. In 2007, I founded a new company named Enki Multimedia which is dedicaced to open source development. This is my commercial interface.

I was naturally involved in Apache CouchDB. I discovered it 3 years ago. Back in the past, I founded a company in 1998 which provided services like GrubHub now to put in relation food delivery services and their customers. So we have a lot of menus to propose, each with their own characteristics. At that time we denormalized MySQL databases to fit our needs. And this procedure is common in the web (I hope). CouchDB is a simple answer to this problem. Also the REST API has a lot of promises like the possibility to embed applications, which is possible since the 0.9 version, and of course all advantages offered by an HTTP interface.

My involvement in Apache CouchDB started with the creation of a new web service (Friendpaste). At that time CouchDB didn't build on OpenBSD, the operating system I use when I develop. So I provided patches. Since then there have been more patches, tests, ... In the mean time I've written 2 libraries to program with CouchDB: couchdbkit in Python and couchbeam in Erlang. I've also rewritten couchapp in Python which was initiated by @jchris and I continue to maintain it. My contributions were noticed by the CouchDB team and I had the honor to join them.

What will your talk be about, exactly?

My talk will be a rapid tour of the different possibilities offered to developers by CouchDB. It will present the REST interface: how to use it in your application (web, desktop, mobile...) and how to extend it. I will also present some common deployment schemes. I will enlighten the possibility to create embedded applications and I will show how it eases the deployment and offers new perspectives.

What do you hope to accomplish by giving this talk ? What do you expect?

I hope that after this talk I will see more applications using couchDB. I'm really interested to see if CouchDB will allow developers to develop new kinds of applications. Also maybe some will join the project and help us to improve it.

What's the history of the CouchDB project? How did it evolve?

The CouchDB project was started by Damien Katz. It was first written in C then rewritten in Erlang and since then continues to grow in features. 0.8 was an interesting milestone: it presented all the features of CouchDB (REST interface, views written in JavaScript, ...) and started to interest more developers. Also CouchDB became an Apache project sometimes after this release. For more history I invite you to go on the CouchDB website.

As CouchDB is a radically different approach to databases than most developers are accustomed to, can you explain what's so different from the point of view of a developer using CouchDB for an application?

With a document-oriented database you often need to rethink the way you will store your data. The M/R implementation of CouchDB is radically different than other database systems, especially SQL. This is different to think about, in terms of views rather than in terms of relations. Apart from that I would say that in a development or operative perspective CouchDB is really easy to use: it's just HTTP.

Is the industry ready to use the document-oriented database paradigm?

Yes. I see more and more interest of the industry in CouchDB. Also it's time to change our paradigms: more and more data and kinds of data need to be handled every days. What's better than a Document Oriented Database for that?

In which circumstances would you refrain from using CouchDB and use a relational database instead?

In cases where relations between data are complex, you still need to use a relational database. Though I wonder if a graph database couldn't replace it in most cases. Also of course you still need relational databases around to keep history in old systems at least until you migrate all your applications/data to a new system. Anyway, I haven't needed a relational database in the last 2 years. When I saw some uses of ORM sometimes, I have the tendency to say that some people would do better with a document oriented database.

Which use cases are perfectly suited for CouchDB?

Lots ;) With CouchDB it's really easy to build distributed document management applications. A content management system fits perfectly, but CouchDB could also to be used to store logs, emails, ... Mozilla builds a messaging platform with CouchDB: Raindrop.

Recently, three of the original developers of CouchDB announced their company Relaxed. Are there many companies offering commercial support for CouchDB?

Yes. There is mine: Enki Multimedia for development, hosting and general support ;) For hosting there is also Cloudant in US which is in beta actually. There may be others worldwide, in Germany for example, but I don't know them.

How big is the developer community of CouchDB?

There are actually 10 core developers and many contributors and developers using CouchDB. I don't have exact figures but it is growing fast.

Has the use of CouchDB in Ubuntu 9.10 helped to attract new developers?

No core developers yet, but I see a lot of development starting on the Ubuntu platform. I would like to hear much about that.

Have you enjoyed previous FOSDEM editions?

Yes. I really like the FOSDEM event. In particularly the "devrooms", it's always a pleasure to meet other developers offline.

Creative Commons License
This interview is licensed under a Creative Commons Attribution 2.0 Belgium License.