user3124669
user3124669

Reputation: 23

Uber Cadence Workflow Version Change Compatibility

I understand that I cannot make backward incompatible changes to Workflows per: How to make changes or fixes to Uber Cadence Workflow without breaking determinism?

However I am not sure what "backward incompatible" means here. Can I simply not deploy new code without using getVersion, period? Or as long as the history tracking that is used for restoration is compatible between the 2 versions then I can update without getVersion? Or I can update without getVersion under some under conditions?

Upvotes: 1

Views: 584

Answers (1)

Maxim Fateev
Maxim Fateev

Reputation: 6870

Generally anything that can change the way the history is generated is considered backwards incompatible. The following changes are backwards compatible:

  • Any activity implementation.
  • Duration passed to sleep and timer creation function.
  • Changing arguments to activities.
  • Changing activity options and retry policies.
  • Changing values of variables that don't affect the workflow execution path. For example if some variable accumulates some data and this data is only used in a query.

We recommend saving a few histories and then replaying them as part of unit tests to find out about non compatible changes earlier.

Upvotes: 1

Related Questions