Recursion Protection

Recursion Protection is a safety feature that prevents runaway recursive workflows which could cause large, accidental spikes in workload or CPU consumption, especially in two-way synchronization scenarios.

Overview

When two-way synchronization is configured on the same table between two datastores, there’s a risk of creating infinite loops where changes bounce back and forth between the systems. Recursion Protection helps prevent these scenarios by detecting and stopping recursive operations.

How to Enable Recursion Protection

To ensure complete protection against recursive operations, you must enable Recursion Protection on both the source and target databases in your pipeline. Follow these steps for each endpoint:

For Each Endpoint (Source and Target):

  • Navigate to the configuration of your pipeline

  • Select the endpoint (source or target) you want to configure

  • Click on the edit (pencil) icon to modify the endpoint configuration

Edit Pipeline Configuration
  • Locate and expand the Advanced Settings section

Advanced Settings
  • Find the Enable Recursion Protection property

Enable Recursion Protection
  • Toggle the switch to true to enable the protection

Value Recursion Protection
  • Click Save to apply your changes

You must repeat these steps for both source and target endpoints to ensure complete protection against recursive operations. Enabling this feature on only one side may not prevent all recursive scenarios.
Recursion Protection is not required for one-way synchronization. Considering using it even though your only syncing one table bidirectionally to prevent any potential issues.

Best Practices

  • Enable Recursion Protection whenever you configure two-way synchronization between the same tables (this applies even if just one table is configured for two-way sync)

  • Monitor your synchronization jobs after enabling this feature to ensure expected behavior