incubator-couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Eric Casteleijn <eric.castele...@canonical.com>
Subject Re: Why I look into CouchDB
Date Wed, 09 Feb 2011 13:44:14 GMT
Hi Norbert,

I'll go a little into use case 1, having some experience with both 
CouchDB and Plone/Zope:

> Usecase 1
> My wife and I have started a local webservice where we offer a kind of
> internet full service agency for the local brick and mortar stores and
> companies. To make our own life easier we build the websites with
> plone.
> Plone offers us slideshows, composite pages (Collage in plone
> parlance) and a very clean css-structure and very good html. Plone
> sites degrade gracefully when javascript is not available in the
> browser. One killer feature is that URLS don't break when we move
> documents around in the site. The downside of plone is the very
> complex architecture, propagation of content changes (between
> development and production) is very hard to do in a granular fashion.
> We can live with these shortcomings for the time being, but I am not
> to keen to develop db-oriented websites with plone, and I see some
> potential in this direction even for our customers.
> For this reason I consider django which appeals to my relational
> trained brain and is architecturally much cleaner IMO.
> Couchdb could offer us an even simpler architecture plus easy
> replication. I would need the ability the key benefits of plone and
> have no ideas if and how it would be feasable to build them in
> Couchdb. So I consider this use case as a remote one, but I would like
> to hear ideas.

There are some interesting low level technical parallels between the 
ZODB (Zope Object Database) that Plone uses, and CouchDB (they are both 
non-relational file based append only B-tree based data stores that 
require manual compacting,) but they are very different in important 
respects: The ZODB stores a tree of arbitrary python objects, which Zope 
loosely maps into a site's urls. A CouchDB database is usually a flat 
store of JSON documents and views on those documents that can 
index/transform/compute on the data in them.

The ZODB is not usually viewed as an alternative to relational databases 
for most purposes, but CouchDB is, due to its extremely fast views.

What Zope offers on top of the ZODB is a Content Management Framework 
which makes it extremely easy to build sites that customers can maintain 
themselves. The closest CouchDB equivalent would probably be CouchApps, 
which allow you to do some really awesome stuff, but AFAIK there is no 
readymade toolset that helps with building a site including CMS that can 
be used by non-technical users. (Yet! There is absolutely no reason that 
one couldn't be built, in, or on top of CouchDB.) I have not even gone 
into the hundreds of extra tools and features (of very varying quality 
and complexity) that Plone brings to the table.

In other tl/dr words:

If you want to use CouchDB to build sites for your customers that they 
themselves maintain without much technical knowledge, you'll have a lot 
of infrastructure to build that Zope/Plone already provides, which would 
be a sizeable investment for a small company. Having said that, you 
could probably avoid some of the complexity and bloat that have made 
Plone in particular sometimes very painful to use. (IMO)

-- 
eric casteleijn
https://code.launchpad.net/~thisfred
Canonical Ltd.


Mime
View raw message