Will tampering in terminating workflows result in some problems?

we have a boolean function “mark_workflow_as_completed”: it will depends on some logic and return True/False. if it returned True the workflow will be completed, and if it returned False nothing will happen.
and we are calling that function at the end of each activity.
Now we actually decided to never complete our workflows and make them run for ever.
so we want to do a small hack and make function “mark_workflow_as_completed” returning False always.
I think that will never cause any problems on the current/completed/to be run workflows.
So I just wanted to make sure of that by asking here.
thanks.

Hi @Ammar_Hussein

It won’t as long as you don’t change your workflow code. If you have time take a look at this documeantion

and we are calling that function at the end of each activity.

do you mean inside the activity code? If so, you can remove the invocation to the function completly and return false. Activities are stateless, you can change activity code without worrying about determinism

Now we actually decided to never complete our workflows and make them run for ever.

Are you considering the use of continue-as-new to prevent your workflow history length from hitting 50k events (better if you can do it when the event history length is < 10k)

I think that will never cause any problems on the current/completed/to be run workflows.

To be completly sure, test your changes with WorkflowReplayer and your running /completed workflows.

Here you have an example in java https://github.com/temporalio/samples-java/blob/010b700a954bb499fa114556861edba66c6e4ba1/core/src/test/java/io/temporal/samples/hello/HelloActivityReplayTest.java#L68 , which sdk do you use?

Let us know if you have questions.
Antonio

1 Like