Incoming Synchronization Modes

Starting Engine v8.1 you can implement 3 synchronization modes:

  • Timer pooling mode.
  • CRUDE + manual pooling mode.
  • Sync ID algorithm mode.

Note that for the effective synchronization your remote storage must support content and metadata eTags (versions, in terms of macOS). See Detecting Changes Using Content and Metadata eTags (Versions) article.

Pooling Synchronization

During pooling synchronization the Engine traverses all folders loaded on the client and calls IFolder.GetChildrenAsync() on each folder to get new folder content from your remote storage. The Engine will compare folder content and metadata using eTags to create, update and delete items on the client. 

If your remote storage does not provide any notifications about items changes you can configure periodic timer pooling synchronization.  

See the Pooling Incoming Synchronization article.

CRUD Synchronization

In case your remote storage provides updates via create, update, delete and move events via web sockets you will use the IServerNotifications interface to reflect changes in the user file system.

If the connection was lost, web sockets disconnected or Engine was not running you will sync all changes by running one-time pooling synchronization.

See the CRUDE Incoming Synchronization article.

Sync ID Synchronization

Sync ID algorithm allows you to request all changes that happened in the remote storage since provided sync token using a single request. This mode requires each item to have the unique ID (remote storage item ID), content eTag and metadata eTag (version, in terms of macOS). You server will increment sync ID on every change on the server and store it with the item being changed. 

See the Sync ID Incoming Synchronization article.

Next Article:

Pooling Incoming Synchronization