Turbo Sync
Turbo Sync is used by all Zuora 360 tenants for Zuora-to-Salesforce synchronization. Turbo Sync reflects a complete re-architecture of Zuora synchronization technology, including:
- Sophisticated logic based on object hierarchies
- Improved use of Salesforce APIs and thread model
- Parallel pipelines for most objects
- More bulk/batch-oriented sync operations
- Resume-ability. On retries, Turbo Sync skips the records that were already successfully synced.
- Ability to monitor sync status from Salesforce
Turbo Sync uses the Salesforce Bulk API to push data in bulk to the target Salesforce org for optimal data synchronization performance. The Bulk API is automatically available for Salesforce Developer Edition, Enterprise Edition, and Unlimited Edition.
Bulk API feature is not enabled by default for some Enterprise Edition customers and Professional Edition with API Access customers.
- If Bulk API is not enabled for the target Salesforce Professional Edition org , the old API-based sync will be automatically used.
- If Bulk API is not enabled for your Salesforce Enterprise Edition org, you will get the following error message while syncing:
Error:
There has been an unknown internal error happened. (FeatureNotEnabled : Async API not enabled)
StackTrace:
[AsyncApiException exceptionCode='<wbr/>FeatureNotEnabled' exceptionMessage='Async API not enabled']
at com.sforce.async.<wbr/>BulkConnection.<wbr/>parseAndThrowException(<wbr/>BulkConnection.java:108)
at ...2 more
at com.zuora.sync.sfdc.migration.<wbr/>impl.SfdcMigrationAgentImpl$<wbr/>SfdcBulkApiConnection$1.<wbr/>operation(<wbr/>SfdcMigrationAgentImpl.java:<wbr/>838)
at com.zuora.sync.sfdc.migration.<wbr/>impl.SfdcMigrationAgentImpl$<wbr/>SfdcB
File a ticket with Salesforce Support to have the Bulk API feature enabled at no extra charge. We strongly recommend that you have the feature enabled to take advantage of performance improvements and resume-ability of Turbo Sync.
Note the following points about Turbo Sync:
- In the new workflow, it's important that your billing account records contain a valid CRM Account ID that refers to an actual account. Otherwise the sync will finish with errors, and you'll see an error message in the sync result.
- On the Sync Result Detail page, the objects are displayed in the order they are synced. Since the Turbo Sync is multi-threaded, the order of the objects being synchronized may not be the same each time.
- IMPORTANT: We do not recommend uses of locks and custom triggers with Turbo Sync. Refer to the following article that describes how locks and custom triggers impact the performance of parallelism: The Salesforce Bulk API - Maximizing Parallelism and Throughput Performance When Integrating or Loading Large Data Volumes
For the Zuora 360 packages that are older than version 2.2, Turbo Sync is not available, thus the API-based sync is used.
For more information about synchronization, refer to syncing in Zuora 360.
Turbo Sync and Salesforce Chatter
If Salesforce Chatter Feed is turned on for the Billing Account, Subscription, and Invoice objects, a Chatter feed is created for every record that is synchronized to Salesforce from Zuora during a sync session. Consequently, Turbo Sync sessions could take 2-3 times longer.
Performance Benchmarks
Customers working with large data sets will experience a more dramatic performance improvement. The ratio of billing accounts to other types of records will also affect the performance time. (For instance, a higher ratio of subscriptions to accounts will process more quickly.)
To establish a conservative benchmark, we created a data set containing several hundred thousand billing accounts and, for each account, a subscription, product charge, invoice, payment method, payment, and invoice payment. One-third of the accounts also had a refund and a refund invoice payment.
Then we synced the data and noted the results, as follows. (All times here are reported in seconds.)
Task | Previous average performance | Average with Turbo Sync | Improvement |
Sync 100K objects | 1,419 | 463 | 306% |
Sync 1M objects | 19,890 | 2,783 | 715% |
Clean up 100K objects | 828 | 668 | 24% |
Clean up 1M objects | 8,415 | 748 | 1,125% |
The performance gain increases with larger data volume, as shown in this graph of the Turbo Sync performance gain for sync and cleanup operations. In the Sync operation you can see an improvement of up to 24X in a 10-million-record data set. For Cleanup, we had already introduced some of the new technology in our 2.60 release (May '13), so we separately show the effect of Turbo Sync on Cleanup in older versions (green) and versions 2.60 and above (red).