Uploaded image for project: 'Syncope'
  1. Syncope
  2. SYNCOPE-855

Synchronization token management enhancement in case of errors

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.2.7, 2.0.0-M2
    • Fix Version/s: 1.2.8, 2.0.0-M3
    • Component/s: core
    • Labels:
      None

      Description

      The overall logic of the synchronization (1.2) / incremental pull (2.0) process can be summarized as:

      1. invoke underlying connector's getLatestSyncToken
      2. invoke underlying connector's sync
      3. store the value for getLatestSyncToken for subsequent invocation

      As a consequence, when one synchronizing item (SyncDelta) generates an error, the whole process might be interrupted without saving the updated sync token, and next invocation will start again from the beginning, without considering the successful items passed before the error occurred.

      The process should be changed as follows, instead:

      1. invoke underlying connector's getLatestSyncToken
      2. invoke underlying connector's sync: for each SyncDelta, temporary store the related syncToken field;
      3. store the last successful item's syncToken value - or getLatestSyncToken if no error occurred - for subsequent invocation

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                ilgrosso Francesco Chicchiriccò
                Reporter:
                ilgrosso Francesco Chicchiriccò
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: