Full and Incremental Synchronize

The synchronize action demonstrated in the sample code acts the same way every time it is called: the connector ingests every file in the repository. This is called a full synchronize, and a connector would typically do this the first time the synchronize action is used.

When the synchronize action runs again, it is more efficient to send ingest-add commands only for new files, send ingest-replace commands for modified files, send ingest-update commands for updates to metadata only, and send ingest-delete commands for deleted files. This is called an incremental synchronize.

To implement an incremental synchronize it is often useful to store state information, for example a list of files retrieved and the time when they were last modified. This information can then be compared to the files currently in the repository. For this purpose, ConnectorLib Java includes a feature called the Datastore.