Workflow execution best practices
Improve your instance stability by implementing the following best practices:
-
Do not to schedule a workflow to run more than every 15 minutes because it may impede overall system performance and create blocks in the database.
-
Avoid leaving your workflows in a paused state. If you create a temporary workflow, make sure it will be able to finish correctly and not stay in a paused state. If it is paused, it would imply that you need to keep the temporary tables and thus increase the size of the database. Assign Workflow Supervisors under Workflow Properties to send an alert when a workflow fails or is paused by the system.
To avoid having workflows in a paused state:
- Check your workflows on a regular basis to ensure there are no unexpected errors.
- Keep your workflows as simple as possible, for example by splitting large workflows in several different workflows. You can use External signal activities trigger their execution based on other workflows’ execution.
- Avoid having disabled activities with flows in your workflows leaving threads open and leading to many temporary tables that can consume a lot of space. Do not keep activities in Do not enable or Enable but do not execute states in your workflows.
-
Stop unused workflows. Workflows that keep running maintain connections to the database.
-
Only use unconditional stop in the rarest cases. This option is restricted to Admin users. Do not use this action on a regular basis. Not performing a clean closure on connections generated by workflows to the database impacts performance.
-
Do not perform multiple stop requests on the same workflow. Stopping a workflow is an asynchronous process: The request is registered, then the workflow server or servers cancel operations in progress. Stopping a workflow instance can therefore take time, especially if the workflow is running on multiple servers, each one of which must take control to cancel the tasks in progress. To avoid any issue, wait for the stop operation to be completed and avoid stopping a workflow multiple times.