uber / cadence

Cadence is a distributed, scalable, durable, and highly available orchestration engine to execute asynchronous long-running business logic in a scalable and resilient way.
https://cadenceworkflow.io
MIT License
8.26k stars 796 forks source link

Ensure determinism in long running workflow changes #3282

Closed JuanPalacios closed 4 years ago

JuanPalacios commented 4 years ago

Describe the bug The workflow replayer throw me an error, It is not posibly to ensure determisnm

To Reproduce Is the issue reproducible?

Steps to reproduce the behavior: Using Workflow replayer in any workflow with acitivities that connect with other systems

Expected behavior The workflow replayer have to ensure not breaking determinism to enable the continues improve of workflow businees logic and ensuring quality of workflow.

Screenshots Ijava.lang.RuntimeException: query failure for WorkflowExecution(workflowId:workflow_id_in_replay, runId:run_id_in_replay), queryType=__replay_only, args=null, error=com.uber.cadence.internal.replay.NonDeterminisicWorkflowError: Unknown DecisionId{decisionTarget=ACTIVITY, decisionEventId=6}. The possible causes are a nondeterministic workflow definition code or an incompatible change in the workflow definition. Exception message: No value found for mutableSideEffectId=656c3613-339f-34c1-9d2b-3cebaed83f63, during replay it usually indicates a different workflow runId than the original one

Additional context Nobody answer me in the slack channel.

JuanPalacios commented 4 years ago

It works.