For any Hightouch sync, there are two main ways that Hightouch automatically retries syncing individual records that aren't successfully received by a downstream destination:
- Within an Active Sync - while a sync is actively running, if Hightouch receives any row-level errors it will automatically retry (at an exponential backoff) until a certain threshold of failure has been met. If a record continues to fail, Hightouch will formally consider it as
failed, which typically maxes out after a certain interval (specific to each destination). This is very similar to the process described by AWS in this documentation - Error retries and exponential backoff in AWS.
- On Subsequent Syncs - Hightouch will keep an index of all
failedrecords and will automatically retry them on every subsequent sync.
For example, assume you try to sync 10,000 records to Salesforce in a single sync and 5 of the records are actually locked for some reason (by users within Salesforce) when the sync kicks off.
- During that single sync run, let's imagine 2 of those 5 records become available for update. Our automatic retries would retry and successfully update these 2 by process number 1 above.
- On the next subsequent run of the sync (at some custom interval in the future) we'd automatically try the remaining 3 records, described by process number 2 above.