CouchDB – up a creek without a paddle? Image source: bobbyfeind on Flickr
Almost a year ago Apache CouchDB creator Damien Katz announced that he would no longer be contributing to the CouchDB document database project he had created, choosing instead to focus on the development of Couchbase Server 2.0, which united CouchDB with Membase Server.
While the abandonment of an open source project by the person that created it is by no means unprecedented it is still unusual enough to warrant a look at what has happened to CouchDB in the year that followed.
Surviving or thriving?
The first point to make is that the survival of CouchDB following Katz’s departure was never in doubt, thanks to the fact that it is an Apache Foundation project. One of the benefits of the foundation model is that it doesn’t depend on a dominant developer or vendor to keep a project moving forward.
Although it briefly appeared that Cloudant would fulfil the role of the major corporate backer of CouchDB with its BigCouch clustered CouchDB technology after Couchbase discontinued its own CouchDB distribution, the company instead refocused its attention on its CouchDB- and BigCouch-based managed service.
While developers from both Couchbase and Cloudant continue to develop to the project Apache CouchDB doesn’t have a lead corporate backer, nor does it need one. According to factoids gathered by Ohloh, there were 30 contributors to the Apache CouchDB project in the past 12 months, up from 18 in the prior 12 months, and placing CouchDB in the top 2% of all project teams on Ohloh.
The question is not whether CouchDB is surviving, however, but whether it is thriving. That increase in contributor count would suggest so, but that’s by no means the full story. In contrast, the number of commits per month has declined in the past 12 months, representing, as Ohloh describes it, “a substantial decrease in development activity”. As the related chart illustrates, in fact, activity has pretty much flatlined since the beginning of the year.
This should not be altogether surprising since the latest release went GA in April.
In response to a request for comment, a spokesperson on behalf of the Apache CouchDB PMC stated:
“Despite an unsettled start to the year, the CouchDB project and the
surrounding community continue to grow and evolve, with the release of
1.2.0 earlier this year, and the forthcoming 1.3.0, currently being
prepared for release. 1.3.0 includes in the last year alone, over 221
commits on the just the master branch, comprising 167 files changed,
5745 insertions, 2248 deletions — solid progress for a project with
22,000 lines of code total.”
Additionally, while the start of that flatline coincides with Katz’s departure from the project, it is not clear that the two are actually related. Ohloh figures indicate that Katz hadn’t actually committed code to the project since August 2010 and is only the eighth all-time most active committer to the project.
It is clear that there is still a lot of activity ongoing in the Apache CouchDB community, with the PMC citing rcouch, bigcouch, PouchDB, TouchDB frameworks for both iOS and Android, a Mac OS X binary installation, and
The PMC spokesperson added:
“Structurally, the project has added both committers and grown the
project management committe, and has been having regular meetings
through the last 2 months to improve communication within the team,
and help steer the community. A roadmap has been put together, and
Ubuntu-style time-scheduled releases are planned for 2013 to keep the
good oil flowing.”
However, in assessing the health of Apache CouchDB, we must look at adoption trends, as well as project activity.
Waving or drowning?
Searching mailing list archives using MarkMail indicates that there has been a decline in the number of messages to the developer, user, commits mailing lists in the past 12 months, although with increased activity on the latter since July.
Additionally, figures from Indeed.com suggest that job activity related to CouchDB saw a sharp decline in the early months of the year, although also a recovery in recent months.
However, that activity is perhaps best viewed in the context of a comparison with another major NoSQL project – MongoDB for instance – which reveals that CouchDB job postings have more or less level-off since the start of the year.
We have also been tracking the traction of NoSQL projects via searches of LinkedIn member profiles. The latest figures, due to be published later this week, show that mentions of CouchDB in LinkedIn member profiles grew over 139% between December 2011 and today.
That sounds good, but again must be viewed in the context of the rest of the NoSQL ecosystem. The statistics show that mentions of a selection of other major NoSQL databases grew significantly faster in the same period.
So what are we to make of all the evidence. Clearly the Apache CouchDB project will survive, and the lack of updates in 2012 is not a major concern, although the level of interest in the project is not growing as fast as other NoSQL technologies. My personal gut feel is that Apache CouchDB has the potential to become the PostgreSQL of the NoSQL generation: a solid, mature projects with a large community of developers and ecosystem of associated vendors that is often over-shadowed by more commercially-oriented alternatives but has a loyal and committed user-base.
Key to this comparison bearing up on longterm scrutiny will be the ability of the Apache CouchDB project to increase and maintain the level of development so that the Lines of code chart, above, better resembles that of PostgreSQL, below:
The comparison with PostgreSQL is also apt given the departure from the project of its creator. While many people do know the origins of the PostgreSQL project given that the original project leader is one of the most famous database experts in the world, I am sure a lot of PostgreSQL users wouldn’t know or care whether the project’s creator continued to be involved. Similarly, Katz’s departure from Apache CouchDB, while undoubtedly a short-term challenge, appears not to have had a significant impact on the project’s ongoing development.