Architectural question: Optimal Workflow Approach for High-Volume Rendition Generation in DAM
Issue & Background:
We manage a DAM system with over 3 million assets, where every uploaded asset goes through the DAM Update Workflow. This workflow includes several steps, such as generating a 4K JPEG rendition and a few OOB thumbnail renditions.
A new requirement emerged where assets within a specific folder—/product-assets (containing over 1 million assets)—now need an additional 4K PNG rendition along with the existing 4K JPEG rendition.
To prevent adding extra load on the DAM Update Workflow, we created a separate Rendition Maker Workflow specifically for this 4K PNG rendition and applied it only to the /product-assets folder via a launcher.
As a result, assets in this folder now go through two workflows:
- DAM Update Workflow (standard process)
- Rendition Maker Workflow (4K PNG rendition generation)
However, we have observed an issue (based on assumption) that running two workflows simultaneously on assets is leading to:
- Some renditions getting corrupted or not being generated properly
- Replication queue getting blocked when these assets are published
Potential Solutions:
Solution 1:
- Eliminate the Rendition Maker Workflow entirely.
- Modify the DAM Update Workflow by adding a custom process step to generate the 4K PNG rendition only inside the /product-assets folder.
- This ensures that other folders are not impacted, making the workflow lightweight for other folders in dam.
- The rendition generation will only happen for Ecommerce and Marketing images inside /product-assets.
Solution 2:
- Retain the Rendition Maker Workflow, but enhance it to include 4K JPEG and all other OOB thumbnail renditions which are in dam update workflow, so that this folder also will have those renditions created, ut by Rendition maker workflow
- Apply this updated workflow only to the /product-assets folder via launcher, ensuring that the DAM Update Workflow does not run on this folder.
- This guarantees that only one workflow runs per asset in this folder.
Key Question: From a performance standpoint, which solution is optimal when processing large volumes (20,000+ workflows at once)?
- Should we go with Solution 1, where we use a custom process step with path-based conditions inside the DAM Update Workflow?
- Or should we go with Solution 2, where we rely on launcher-based conditions to ensure that only one workflow runs at a time?
Looking forward to expert insights on which approach is better for scalability and performance.


