couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dave Cottlehuber <>
Subject Re: Architecture Question
Date Tue, 18 Oct 2011 13:58:11 GMT
On 18 October 2011 12:05, Ido Ran <> wrote:
> Hello again,
> I am developing a desktop application that run on Windows using WPF
> interface. The application loading and saving data using RESTful web service
> that is currently only a thin wrapper around relational database.
> My design require the following things:
>   1. Offline work - allow the users to work in offline mode when connection
>   to the server is not working
>   2. Sync between local and remote databases - Either online or manual sync
>   between databases
>   3. Conflict resolution - Both offline and sync may cause conflicts so I
>   need a way to resolve them
>   4. Security - I need to authenticate the user and authorize them
>   according to security rules.
> The first 3 requirements available in CouchDB out-of-the-box - the question
> here is what data model to use in order to take advantage of those those
> capabilities.
> My model is close to the following (top to bottom):
>   - ProcessGroup is a data entity with name and set of Processes
>   - Process is a data entity with name and set of activities
>   - Activity is a data entity with name and set of participants and set of
>   properties
> If I will create a document for ProcessGroup it will cause to much conflicts
> even if two users change different activities. On the other hand if I model
> each entity as it own document I can't be sure that when creating a Process
> with 100 activities all of the activities will be added, for example a power
> down in the middle of the process or CouchDB fail half way though the
> addition. In other words there are no transaction out side a document.

The bulk docs API might be sufficient for your needs:


View raw message