First excuse me if this is already discussed topic, but i hope you can direct me to the proper approach.
We are using flowable in embedded mode in Spring Boot microservice, where we plan to run processes, where tasks are executed in Spring Beans.
As we know it is best to have homogenous cluster running the flowable executors. However in practice, when we update the service, we are doing blue green deployment. Thus there is a moment in time upon the deployment, where the new version of the application is being rolled out and there are old app instances running.
The question is when and how the deployment of the new process version is performed. If the new process version is deployed and activated before the cluster is homogenous, it means there would be nodes, that do not contain all the task implementations. Thus the process would fail, if the Async Task Executor picks up a task without implementation.
What is the recommended way to resolve that issue ?
What i looked into is:
This could be used to implement our own task management, which can ensure instances, not having implementations for certain tasks, would not try to pickup tasks. But it requires we implement our own task management framework.
There might be some other clever tricks… for example a process that bootstraps the other processes deployment. Thus in general would not be sensitive if it is deployed multiple times on top of each other.
We are planning to use kubernetes and helm for deploy of the micro service. So there might be some tricks using helm ?