couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jan Lehnardt <>
Subject Re: Where to add documentation for bulk updates
Date Wed, 25 Mar 2009 09:15:02 GMT
Hi Brian,

first, thanks a lot for helping out with CouchDB, driving discussions  
documentation, your work is highly appreciated.

On 25 Mar 2009, at 09:46, Brian Candler wrote:

> This is where I think the introductory material on  
> does
> CouchDB a big disservice by overhyping: it implies strongly that
> distributed, replicated applications are easy to write with CouchDB,  
> but I
> don't think the reality matches that, at least not yet.
> Of course, CouchDB is applied successfully to many projects. I have a
> suspicion that most of them either (a) don't use replication at all,  
> or (b)
> replicate mainly in a master->slave fashion, or (c) follow "append- 
> only"
> pattern (new documents are added, but old documents are rarely  
> modified). In
> these cases, the conflict issue is dodged entirely, which means  
> CouchDB's
> built-in "support" for replication conflict handling is moot.

I'd like to comment on this since you've brought up this point in the  
CouchDB's conflict handling is not the final word on how conflicts have
to dealt with in an application. It is merely the building blocks with  
defined and reliable behaviour that you can and have to build your  
resolution on top of. Just like CouchDB doesn't magically handle  
writes, it simply rejects the second write and has the client deal  
with it. Or
take replication: It is just an API with one POST endpoint and not a  
to keep two nodes in sync. Additional legwork, like using database  
notifications, is needed.

Conflict resolution is very application dependent and, like "scaling"  
sharding, cannot be done in a generic way. I think the misconception  
is that you derive from the docs, that CouchDB's conflict resolution  
solve things generically where it does not, it is just another  
building block.

That said, I don't want to imply "dude, you're so wrong", I think we  
to be more clear in the documentation about that, and thanks for  
this up. Or maybe I'm wrong, wouldn't be the first time :)

Keep up the good work! :)


View raw message