What is the actual recommended method for resolving conflicts in CBLite?



Conflict resolution has proven to be a challenging problem to do correctly. With continuous replications, the stream of changes in both directions (push/pull) is done concurrently and changes come in from the server in batches when large numbers of revisions and conflicts are downloaded. The database change event notifies us in multiple chunks, but we don’t ever really know when we should begin resolving conflicts.

From my understanding, the recommendation from CB was to wait until all changes have been pulled, then resolve conflicts, then push. Is this in fact the best practice? This sequence of events would mean that continuous replications do not lend themselves well to resolving conflicts on the fly, and instead, polling/one-shot would work best.

We need to have a reasonable assurance that we have received all available revisions and resolved all conflicts to produce a winner before we start notifying users of our application that a new document has arrived.

I would really appreciate any kind of guidance of real world, practical conflict resolution with CBLite. Specifically the “when”… I get the how.

CBLite .NET,