:zap: Workflow Automation Platform. Orchestrate & Schedule code in any language, run anywhere, 500+ plugins. Alternative to Zapier, Rundeck, Camunda, Airflow...
Today, some changes to the execution can be done directly by the webserver without going through the executor.
This means that there can be discrepancies between the executor state and the execution in database, this is particularly an issue with the Kafka runner as it stores the execution in a dedicated Kafka Stream state store but even in JDBC.
For example, when we delete an execution, this is a soft delete, so if the executor is still processing the execution it will "resurrect" the execution.
We need to investigate what we can do to synchronize all allowed changes on the execution to the executor, or restrict what we can do to an execution.
Issue description
Today, some changes to the execution can be done directly by the webserver without going through the executor.
This means that there can be discrepancies between the executor state and the execution in database, this is particularly an issue with the Kafka runner as it stores the execution in a dedicated Kafka Stream state store but even in JDBC.
For example, when we delete an execution, this is a soft delete, so if the executor is still processing the execution it will "resurrect" the execution.
We need to investigate what we can do to synchronize all allowed changes on the execution to the executor, or restrict what we can do to an execution.