Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What was changed
The new Workflow.getVersion overload to support versioning signal and other handlers as well as loop bodies.
Why?
Consider the following example:
If the change is introduced after the loop starts executing, all iterations are going to use
the default version, even if most of them happen after the change. This happens because the *
getVersion call returns the same version for all calls that share a changeId. The same issue *
arises when changing code in callbacks like signal or update handlers. Frequently, there is a
need for a new version used for newer iterations (or signal handler invocations).
The following solution supports updating the version of each iteration separately, as it
uses a different changeId for each iteration:
The drawback is a marker event as well as a search attribute update for each iteration. So, it
is not practical for the large number of iterations.
The newly added method provides an efficient alternative to the solution that uses a different
changeId
for each iteration. It only inserts a marker when a version changes.
Here is how it could be used:
How was this tested:
A unit test was added.
Any docs updates needed?
Patching documentation for Java SDK should be updated.