As an administrator, you have detailed control on the synchronization schedules that you set. However, you must pay attention to how you set the synchronization times to avoid jobs missing their schedule. As a measure to help prevent this from occurring, we have randomized timetables for the same time periods.
There are three types of jobs that are relevant:
- Full synchronization - Optimized for huge data volumes which may take a lot of time to complete.
- Incremental synchronization - Optimized for small but frequent updates.
- Notification jobs - Evaluation of notification events and sending notification messages to the target audience. Notification jobs run after each full synchronization, incremental synchronization, after service actions, and also independently.
To get started, for any given integration one full synchronization must finish successfully before any incremental synchronization can run.
Only one type of job can run at any time for any given integration. For example, while a full synchronization is running, there cannot be an incremental synchronization running nor any notification job running. It is the same situation for incremental synchronization and notification jobs.
However, several notification jobs can run at the same time. The maximum number of jobs for all integrations combined is three per instance of Microapps service.
It might happen that the schedules for full synchronization and incremental synchronization overlap. It is not possible to predict which succeeds and which fails. There are no rules governing this situation. In this case, we rely on randomization and the limited throughput of three jobs per instance which decreases the odds that a full synchronization and incremental synchronization start at the same time and collide.
Synchronization that does not meet its schedule
If a job doesn’t run on schedule, it is marked as misfired and the system attempts to schedule the misfired job as soon as possible. Reasons you might miss the schedule:
- There are already three other jobs currently running on this instance.
- A job takes longer to complete than what is set in the repeat interval. For example, you set incremental synchronization for every 15 minutes, but the job takes 20 minutes to complete for some reason.
If any value in the primary key column is missing or has an invalid type, the record is skipped during synchronization and a log warning is generated.
Veto rules in detail
Every time a job starts, the veto rules that can cancel the job are checked. Veto rules are different for different types of jobs.
- For full synchronization, a job is vetoed if another notification/synchronization job is already running for the same data integration. In this case, the job is retriggered in 5 seconds.
- For incremental synchronization, if there’s never been a successful full synchronization for the integration the scheduler starts a full sync instead as a one-time job. Also, as with the above, a job is vetoed if another notification/sync job is already running for the same data integration and the job is retriggered in 5 seconds.
- For notification events, a job is vetoed if there’s never been a successful full synchronization for the integration. Notification jobs run concurrently. This means that several notification jobs can run at the same time. However there is only one changelog table for each primary table for optimization reasons. Therefore, there can only be one notification job updating the changelog table at a time. As a result, while one notification job updates the changelog table, other notification jobs wait. When this is complete, the other notification jobs can run.
Set data synchronization
Pull data from your integrated applications to the Microapps platform so that a comparison can be made to the cache. As a best practice, full synchronization is performed every 24 hours and incremental syncs can be configured to pull every five minutes.
Scheduled synchronization jobs run at the interval defined after the last successful run. For example, if the interval is set to 5 minutes the job starts at 10.05, runs (for example for 15 minutes) and once successful pauses for an interval of five minutes and starts again. Therefore the job starts at 10.05, runs successfully until 10.20, and then starts again at 10.25.
- From the Manage Microapps page, select the menu next to the integration for which you want to set synchronization.
Set Full and Incremental data synchronization values.
Full Drops the local cache and pulls all data from the source system.
Running full synchronization can take a long time. We recommend running full synchronization at night or generally during off hours. You can cancel a data synchronization that is in progress at any time by selecting the X icon.
Incremental Pulls only changed (new and updated) records. Does not load deleted data.
Not all APIs support incremental synchronization.
When you define daily or weekly synchronization, synchronization occurs randomly within the timeslot that you select. For example, selecting 00-04 daily full synchronize will run a full synchronize at a randomly selected time in that period.
- Select Save.
You can also select the arrow icons to run the integrations on demand if necessary.