We have released updates to the sync reprocessing system, which bring significant improvements to both end users and developers.
What has changed?
When changes to the sync rules are deployed to the backend, all data for that deployment needs to be processed again to take the new sync rules into consideration. This brings some challenges:
Sync rule reprocessing can take a long time to complete (a number of days for some apps), and it was possible that users worked with inconsistent data during this period.
During the entire sync reprocessing period, users could sync new data, but the app would display a sync error and the "last_full_sync" property would not get updated.
Once reprocessing is complete, devices need to re-sync data. This could be a long process.
The updates to the sync system address the above challenges.
What this means for end users
No more sync errors or infinite sync spinner during reprocessing.
Faster re-sync after reprocessing.
End users will still receive new updates to objects during sync reprocessing (as per the previous sync rules).
What this means for developers
Less need to plan around sync reprocessing, since the effect on end users is reduced.
Developers can count on users syncing a consistent set of data during sync reprocessing.
The "last_full_sync" property continues to get updated even during sync reprocessing, as devices are completing full sync cycles.
If the new version of the code relies on new sync rules being active immediately, we recommend that you deploy in multiple stages:
First, deploy only sync rules and data model changes
Then the rest of the changes once reprocessing is complete
You can read more about sync reprocessing here.
Tip: The sync reprocessing status for a deployment can be viewed on the "Sync Diagnostics" page available from the backend data browser (you may need to elevate permissions to access it).