# Do I need versioning if

**URL:** <https://community.temporal.io/t/do-i-need-versioning-if/3289>\
**Category:** Community Support\
**Tags:** java-sdk\
**Created:** [November 1, 2021, 7:41pm UTC](https://community.temporal.io/t/do-i-need-versioning-if/3289 "2021-11-01T19:41:13Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![nkatre](https://avatars.discourse-cdn.com/v4/letter/n/d6d6ee/32.png) [@nkatre](https://community.temporal.io/u/nkatre)\
**Post date:** [November 1, 2021, 7:41pm UTC](https://community.temporal.io/t/do-i-need-versioning-if/3289/1 "2021-11-01T19:41:13Z")

</div>

Hi,

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

---

<div class="post-metadata">

**Author:** ![maxim](https://sea2.discourse-cdn.com/flex016/user_avatar/community.temporal.io/maxim/32/8_2.png) [@maxim](https://community.temporal.io/u/maxim)\
**Post date:** [November 1, 2021, 8:48pm UTC](https://community.temporal.io/t/do-i-need-versioning-if/3289/2 "2021-11-01T20:48:56Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![nkatre](https://avatars.discourse-cdn.com/v4/letter/n/d6d6ee/32.png) [@nkatre](https://community.temporal.io/u/nkatre)\
**Post date:** [November 3, 2021, 2:28pm UTC](https://community.temporal.io/t/do-i-need-versioning-if/3289/3 "2021-11-03T14:28:42Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![maxim](https://sea2.discourse-cdn.com/flex016/user_avatar/community.temporal.io/maxim/32/8_2.png) [@maxim](https://community.temporal.io/u/maxim)\
**Post date:** [November 3, 2021, 2:39pm UTC](https://community.temporal.io/t/do-i-need-versioning-if/3289/4 "2021-11-03T14:39:35Z")

</div>

> 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.

---

<div class="post-metadata">

**Author:** ![nkatre](https://avatars.discourse-cdn.com/v4/letter/n/d6d6ee/32.png) [@nkatre](https://community.temporal.io/u/nkatre)\
**Post date:** [November 12, 2021, 6:26pm UTC](https://community.temporal.io/t/do-i-need-versioning-if/3289/5 "2021-11-12T18:26:25Z")

</div>

@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 ?

---

<div class="post-metadata">

**Author:** ![maxim](https://sea2.discourse-cdn.com/flex016/user_avatar/community.temporal.io/maxim/32/8_2.png) [@maxim](https://community.temporal.io/u/maxim)\
**Post date:** [November 12, 2021, 7:15pm UTC](https://community.temporal.io/t/do-i-need-versioning-if/3289/6 "2021-11-12T19:15:46Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Sowmya1](https://avatars.discourse-cdn.com/v4/letter/s/58f4c7/32.png) [@Sowmya1](https://community.temporal.io/u/Sowmya1)\
**Post date:** [January 20, 2025, 6:32am UTC](https://community.temporal.io/t/do-i-need-versioning-if/3289/7 "2025-01-20T06:32:39Z")

</div>

is Versioning required when we add few extra lines in workflow code?

---

<div class="post-metadata">

**Author:** ![maxim](https://sea2.discourse-cdn.com/flex016/user_avatar/community.temporal.io/maxim/32/8_2.png) [@maxim](https://community.temporal.io/u/maxim)\
**Post date:** [January 20, 2025, 5:40pm UTC](https://community.temporal.io/t/do-i-need-versioning-if/3289/8 "2025-01-20T17:40:31Z")

</div>

Yes, if these lines generate new commands. For example, scheduling an activity or calling workflow sleep generates a command.

No, if these lines don’t affect how the workflow is executed, for example, they change some values used only by a query.
