Patent ID: 8527995

Claim:
A method in a synchronization system for synchronizing entities of multiple applications, each application having a separate copy of the data of the entities, the method comprising: for each application, providing an entity adapter that provides a common interface for accessing data of the entities of that application; providing a synchronization store that, for each entity that has been synchronized, tracks a version of the entity that was last synchronized; receiving from a source application an indication of a transaction performed by the source application for updating a version of an entity, the received transaction identifying the entity, the version of the entity, and an action to apply to the entity; storing an indication of the received transaction; waiting until any sent synchronization transaction for the entity completes and until dependencies of the received transaction have been satisfied; determining whether the version of the entity in the received transaction is the same as the version of the entity that was last synchronized; when the determining indicates that the version of the entity in the received transaction is the same as the version of the entity that was last synchronized, sending a transaction corresponding to the received transaction to an entity adapter of a target application for updating the entity of the target application in accordance with the received transaction; and when the determining indicates that the version of the entity in the received transaction is not the same as the version of the entity that was last synchronized, determining whether the source application or the target application has been designated as master of the entity; when it is determined that the source application is not master, disabling the received transaction; and when it is determined that the source application is master, sending a transaction corresponding to the received transaction to the entity adapter of the target application for updating the entity of the target application in accordance with the received transaction.