When a workflow executes in Adobe Experience Manager (AEM), it stores workflow runtime information in the JCR repository under the instance node. This feature is useful when auditing is required on each step of the workflow status. The downside of this feature is the growth of the repository size, as a large repository can eventually inhibit performance and cause disk space loss issues.
AEM provides out-of-the-box (OOTB) Adobe Granite Workflow Purge to clear nodes under the instance node. This workflow purge activity needs to be scheduled on periodic basis. The workflow purge schedule task runs takes quite a long time, which leads to timeout where not all archived workflow are purged.
Here’s where transient workflow comes into play. What exactly does Transient Workflow work? It doesn’t save any of the runtime information relating to the workflow (whereas the payload related information and processing logic that creates assets are persisted to JCR).
So what is the benefit of this transient workflow? We do not need to worry about repository growth, as it contributes to a lower number of TarMK files and faster offline compaction. Transient workflows do not create child nodes under an instance node. When Adobe Granite Workflow Purge scheduled task runs, it has fewer archived workflows to purge, so it won’t timeout.
Here’s a simple demonstration of the transient workflow feature within Adobe Digital Asset Management (DAM) Update Asset Workflow.
Before making DAM Update Asset Workflow transient:
Upload a PDF asset to the DAM folder. After completion of the workflow, inspect the workflow console archive tab – you will see the workflow instance. Open the history of the completed workflow instance to see all persisted workflow steps.
Now verify the same CRXDE. Under /etc/workflow/instance you will see the instance.
Next, make the same DAM Update Asset Workflow a transient workflow, and then look at the results:
Now upload a PDF asset to the DAM folder. After completion of the workflow, inspect the workflow console archive tab. You will not see the instance of the workflow because the transient workflow won’t be saved under the /etc/workflow/instances node.
Note: There are use cases that require one workflow to be non-transient and other workflow to be transient. You can implement not only the OOTB workflow as transient, you can make your custom workflow be the transient workflow as well.
If you need to know what workflow use cases will work with transient workflow, please feel free reach out to us in the comment box below.
What workflow use cases will work with transient workflow?
Joe,
Thanks for replying back. Any workflow that does not require any history and auditing, those workflows can be set to transient. Say for example, DAM Update Asset workflow is triggered everytime an asset is updated. Once the process is completed, we need not store the information, it can be set to transient.
Thanks
Prakash
Thanks for sharing the info. I learned a new AEM feature.
Thanks Prakash, Information was very helpful 🙂