Usage Guidelines for Workflow Persistence

Use of the workflow persistence feature can impact performance significantly, depending on the setting combinations for frequency and level. You should give careful consideration to the persistence frequency and persistence level settings you apply to workflow processes to make sure you get the results you want.

The usage guidelines for workflow persistence are separated into the following categories:

Long-running workflows

In-memory workflows

Troubleshooting of workflows

Long-Running Workflows

Long-running workflows are typically flows that start, run some activities, suspend, and then resume at a later time. The lifecycle of such a workflow can span multiple suspend periods and resume periods.

For long-running workflows, the recommended settings are the following:

Level: Current Step

Frequency: On Pause

This setting combination should be used selectively, only on workflows that have long-running workflow characteristics. Use this setting combination only for workflow processes with execution spanning a significant time duration and which need to be suspended and resumed at a later time. Production workflows must have these settings to enable the long-running workflow feature.

In-Memory Workflows

In-memory workflows—or short-duration workflows—are typically jobs that start and finish as a single execution of a series of steps in memory. For in-memory workflows, it is highly recommended that persistence be disabled on all production systems. Using workflow persistence for in-memory workflows causes performance to degrade significantly.

Troubleshooting of Workflows

For both long-running and in-memory workflows, persistence can be used to debug and troubleshoot workflows. It is recommended that you use the persistence feature for troubleshooting of workflows only in the development environment.

In production, errors that occur when executing workflows are logged in server log files. This is the recommended approach for detecting errors in the production environment.

The various setting combinations impact performance at different levels. For example, the combination of a persistence level of Current Step and a persistence frequency of On Pause provides current-step-level debugging data with moderate performance impact. This is the minimum setting. As another example, the combination of persistence level: All Steps and persistence frequency: Every Step provides step-level debugging at all steps with very high performance impact. This is the maximum setting.

It is strongly recommended that these settings:

Be used only when troubleshooting and testing.

Be used only on a process-by-process basis rather than on all processes.

Be disabled once the workflow is ready to be deployed. These settings should not be used on production systems.

NOTE: If persistence is enabled, large numbers of records can accumulate in Workflow instance tables over a period of time. To prevent this from creating space problems, unwanted records should be periodically purged using the Purge functionality in the Workflow Process Log view.