-
Notifications
You must be signed in to change notification settings - Fork 145
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature] Dynamically update workflows #66
Comments
This should be already supported in GoFlow.
|
Hi @s8sg. Oh, I found the Register() is very similar to the However, the root cause I implement the update logic is that I found that there will be panic in this use case:
The server process will have panic. |
Yes. for any active request it will fail. I think it's unavoidable. It should be taken care by the user to make sure there is no active requests |
Even if we keep a snapshot of the dag definition per request and use the snapshot to execute the flow Say a dag is D with node N1, N2, N3 Say for request R1 that comes at t1 we make D1 as the snapshot as if A DAG can be changed to completely remove a node. Lets say that happens at t2 In that case for the D1 snapshot is no longer valid, and when R1 tries to execute N3 at t3 it will not find the definition (t1<t2<t3 ) |
Post completion #4, We should be able to do that without any concern, because workload will be completely independent of the DAG definition Currently it's in progress. I'll suggest to wait until this feature is added |
I think this is something like transaction concept in databases. This error is similar to read skew. I think in some cases, it is not acceptable if any running workflow is terminated accidentally by user's action. Of course, I didn't dive deep into theoretical background of workflow definition in this project. Maybe it can be discussed further. |
Still in progress. Didn’t got much time this weekend. Will try to finish it off my the next. Will require some help with the testing |
Hi @s8sg ,
We are using goflow to build an online system. The main use case is to orchestrate different tasks together like workflows.
For example, initially user has a workflow like
But the user now want to modify and changed to
Currently, however, after registering workflows, the DAG cannot be changed.
(Of course, we can restart the flow service to achieve the reload)
So I try to contribute in this PR #64
The text was updated successfully, but these errors were encountered: