Do I need versioning if


I have an activity which is part of a workflow. Do I need versioning if the logic of this activity is modified ?

No, activity implementation can change any time without a problem. Versioning is required only when the workflow code changes.

Do I need versioning if I remove of add activity retry options ?

Do I need versioning if I remove of add activity retry options ?

No versioning is needed. Retry options, as well as activity argument values, are not compared during replay.

@maxim Where can i read more on whats compared during replay. I also made an incremental change to rate limit activities on the taskqueue across all workers using taskQueueActivitiesPerSecond. Is this compared during replay ?

Any changes to WorkerOptions are safe without versioning. So taskQueueActivitiesPerSecond can be changed any time.

We don’t have a document that specifies what is considered non compatible change. Here is a short version:

  • Type of operation. For example, adding a Workflow.sleep anywhere in the workflow code. Or changing activity invocation to a child workflow invocation.
  • Type of activity. For example, invoking activity A instead of B.
  • Type of a child workflow. For example, invoking child of type C instead of D.

Anything that doesn’t affect the order of these operations is considered safe. The tricky part is that the order can have non trivial dependencies on workflow state.