On Nov 5, 2013, at 1:13 PM, Jim Klo <[email protected]> wrote:

> It seems to me that one could build an add-on to any database to support this 
> I think?  

Yes, but you need to add a significant amount of metadata to each 
document/record/row since you need to track its revision tree[1].
(I am currently building exactly such an add-on so I know whereof I speak :)

> I was actually wondering how difficult it would be to build a 'generic 
> replication api' that leverages the same CouchDB replication protocol…  Has 
> anyone endeavored to try anything like this?  It seems like it should be 
> straight forward.

There are a couple of re-implementations of the CouchDB replication protocol: 
PouchDB and Couchbase Lite (in both Objective-C and Java implementations).

I have my own documentation of the replication algorithm[2] and there’s another 
description that’s recently been added to the CouchDB docs.

I don’t know about “straightforward” … it’s not rocket science, especially now 
that there is actual documentation of the protocol, but it’s a fairly complex 
engineering task, especially the failure handling.

—Jens

[1] Gory details in the 2003 paper "The Hash History Approach for Reconciling 
Mutual Inconsistency”: 
<http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.12.5482&rep=rep1&type=pdf>.
 I don’t know for sure, but I suspect this paper was an influence on the design 
of CouchDB since what it describes is very similar to the way CouchDB 
replication works.
[2] https://github.com/couchbase/couchbase-lite-ios/wiki/Replication-Algorithm

Reply via email to