Skip to main content

Turbo Sync

Zuora

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).

Turbo Sync benchmarks 03a.png