# Investigation of Microservice-Based Workflow Management Solutions for Industrial Automation
## 3 Challenges and Requirements Set by the Industry for the Workflow Lifecycle
### Requirements for Workflow Execution  
In this phase, the workflow is executed or launched. The workflow execution requires an actionable and instantiated workflow. One of its functions is to translate the elements related to each assigned resource into service invocation data. Depending on the state of the resource, the workflow execution either transmits the invocation data or deploys the resource with the appropriate configuration. The main challenges identified here are as follows:  
**Challenge 4. Parallel execution capabilities**: This challenge refers to the execution of multiple instances from the same workflow concurrently. It is also associated with multiple workflows requesting the same service at the same time, one workflow requesting multiple services at the same time, and so on. Parallelism can be approached from several points of view, depending on which actions can be carried out simultaneously in each scenario. Hence, it encompasses multiple instances of the same workflow running simultaneously, multiple workflows requesting the same service at the same time, or one workflow requesting multiple services at the same time. **Challenge 5. Asynchronous service execution**: This challenge addresses a workflow's capability to accommodate asynchronous service communications. An asynchronous reply from a service task implies the provision of mechanisms to listen to the reply in order to continue the execution of a workflow. In comparison, a synchronous approach requires the task to stall until a reply is received from the service being invoked. **Challenge 6. Dynamic nature of microservice architectures**: This challenge refers to a group of phenomena that occur due to the dynamic nature of microservice-based architectures. These phenomena include the following:* **Dynamical**: Mixed cloud, edge, and IoT architectures are constantly changing. Edge conditions bring significant dynamism to service-based applications, in contrast to the relative stability of large data centers. Dynamic adaptation mechanisms, including run-time configuration, deployment, and switching, are essential for the smooth execution of workflows across the infrastructure [55]. According to [60], tolerance toward the loss of connectivity from the workflow orchestrator and the various controllers is typically not addressed by the technologies usually employed in WFM. Dynamism and the need to adapt workflows to changes can increase the likelihood of device failure and workflow orchestration issues [57]. The workflow orchestrator must enable near real-time scheduling of network resources such that it can adapt to changing service demands [61]. * **Rotation and unreliability**: This refers to the changes that can be experienced from the point of view of functionality and not so much from that of availability as in the previous case (dynamism). Similar to the dynamism challenge, edge resources are inherently volatile and are increasingly being used to support transient services. The functions offered by IoT or edge architectures are ephemeral, which imposes a much higher rate of change compared to cloud environments. This nature poses significant challenges in the different functions enabling workflow orchestration [55]. The description of resources and functionalities may not always be accurate, as they can quickly become obsolete, complicating reliable deployment and service guarantees. * **Speed**: The microservices or serverless computing-based architectures that today's application systems work on are capable of delivering on-demand services with very fast response times. [PERSON] et al. [62] identified an important feature of serverless computing architectures: the ability to deploy new instances in milliseconds. These lightweight, rapidly deployable execution units are best suited for short-lived resources where failures are common. This presents a challenge for workflow orchestrators, who have to decide where to run a given function and reschedule services to cope with deployment speed and failures.