Dynamic forks- scaling your system at runtime - an image processing example
Blog post from Orkes
The text explores the creation of dynamic image processing workflows using Conductor, focusing on generating images in multiple formats and sizes through runtime task splitting. Initially, image processing workflows were limited to a fixed number of images due to hardcoded paths, but Conductor's dynamic fork feature now allows for more flexibility by determining the number of parallel processes at runtime. The workflow involves three main tasks: reading input parameters to define dynamic tasks, creating parallel tasks dynamically using the FORK_JOIN_DYNAMIC, and rejoining completed tasks. A detailed explanation is provided on how to configure these tasks using JSON and Java, including the creation of dynamic task names based on output formats and sizes. The process culminates in spawning several image conversion tasks that result in various image formats and sizes, with plans to introduce subworkflows in future posts for additional tasks like uploading images to Amazon S3.