What are Query Waves?
Pulsar uses query waves to retrieve records during the initial sync. Each wave targets a set time window, usually one calendar month, and the sync moves backward from the present.
How is a wave defined?
Each wave is set by two datetime markers:
WaveWindowBeginDate – the start of the wave (e.g., 2016-09-01T00:00:00Z)
WaveWindowEndDate – the end of the wave (e.g., 2016-10-01T00:00:00Z)
The first wave starts from the current timestamp and goes back to the first day of that month. After that, Pulsar creates full-month waves in reverse order. Pulsar Settings determine the number of waves and the behavior of the last wave.
What happens with the final wave?
By default, the last wave retrieves all remaining data, dating back to January 1, 1980. This can be a lot of data and Salesforce may timeout during the request. Due to this, any errors on this last wave are ignored, and Pulsar integrates just the data it was able to download. If you would like to change this default behavior on the last wave, Pulsar can be set to only retrieve one month, like the others. If set like this, and this final wave fails, Pulsar reports a sync error.
An Example
For example, specifying four waves and performing an initial sync on December 5 will create one wave from December 1 to December 5, a second wave encompassing all of November, and a third wave encompassing all of October. The fourth and final wave will attempt to retrieve as much data as possible from September 30 of the current year to January 1, 1980.
What are the Pulsar Settings that control wave behavior?
Max Sync Waves (pulsar.sync.maxWaves): This setting requires a numerical value that sets how many waves (or months) to sync in the initial sync. For example, use 26 to pull two whole years of history with the full wave enabled. This provides 24 full months of data, with one month representing the current partial month and one month representing the final wave. Read more about the Max Sync Waves Pulsar Setting.
Enable Full History Wave (pulsar.sync.enableFullHistoryWave): This setting controls whether the final wave includes all historical data or just the data from the final month. When set to TRUE, it pulls all historical data. Otherwise, it retrieves just one month in the last wave. Read more about the Enable Full History Wave Pulsar Setting.
Why do these settings matter?
Use these settings to improve your team’s sync times or prevent sync timeouts.
They control how much data gets synced to the user’s device.
More data means longer sync times.
Default values can result in too much data and possible timeouts. Pulsar won’t error if the full history wave fails, but some data might be missing.