A coordinating push and user-initiated synchronization method and system.
Initially, changes to a local application data store are detected and
records affected by the change are identified. At some point, a record
affected by a detected change is pushed to a remote system where it is
ascertained whether the pushed record, in its current form as affected by
the detected change, has already been replicated in or deleted from a
remote application data store through user-initiated synchronization. If
not, the pushed record is used to update the remote application data
store. Instead, at some point it may be ascertained whether the
identified record, in its current form as affected by the detected
change, has been replicated in or deleted from the remote application
data store through push synchronization as just described. If not, the
remote application data store is synchronized with the local application
data store.