Implement operator commands for Standalone Activities - #3013
Open
GregoryTravis wants to merge 29 commits into
Open
Implement operator commands for Standalone Activities#3013GregoryTravis wants to merge 29 commits into
GregoryTravis wants to merge 29 commits into
Conversation
# Conflicts: # temporal-sdk/src/test/java/io/temporal/client/functional/StandaloneActivityTest.java
maciejdudko
requested changes
Aug 18, 2026
maciejdudko
left a comment
Contributor
There was a problem hiding this comment.
Looking good, although there are a few design choices that warrant more discussion.
Comment on lines
+423
to
+424
| private final @Nullable String reason; | ||
| private final @Nullable Duration jitter; |
Contributor
There was a problem hiding this comment.
Suggested change
| private final @Nullable String reason; | |
| private final @Nullable Duration jitter; | |
| private final UnpauseActivityOptions options; |
Contributor
Author
There was a problem hiding this comment.
@maciejdudko I also added one for Pause, even though there is just one field, for future proofing.
|
|
||
| UntypedActivityHandle handle = newHandle(); | ||
|
|
||
| handle.pause("because"); |
…ead `response.getInfo()` throughout. - ActivityExecutionDescription: attach ActivitySerializationContext to the data converter once in the constructor, instead of rebuilding it on every user-metadata read. - ActivityExecutionDescription: drop parent-presence guards that protobuf's null-coalescing getters make redundant. - ActivityExecutionDescription: getResult(Class) now passes a null generic type, matching ActivityClient.startActivity; the two-arg overload accepts null and normalizes it (previously it threw). - ActivityExecutionDescription: rename getFailure to getOutcomeFailure to distinguish the terminal outcome from getLastFailure; both now return RuntimeException. - ActivityExecutionDescription: getInput() and getHeartbeatDetails() return EncodedValues; getInputCount() and the typed overloads are gone. BREAKING: getHeartbeatDetails shipped in v1.35.0-v1.38.0. - ActivityClientCallsInterceptor: UnpauseActivityInput and ResetActivityInput carry the options object rather than exploded fields. - RootActivityClientInvoker: clear payload fields the caller did not request, so an older or buggy server cannot make the description's has* accessors disagree with what was asked for. - Delete ActivityExecutionOptions and return UpdateActivityOptions from updateOptions; the update request and response share one proto options type, so the field sets cannot diverge. - UpdateActivityOptionsOutput holds the final options object; the proto-to-options conversion moved into the root interceptor, so interceptors see the public type rather than the wire type. - Move restoreOriginal off UpdateActivityOptions into ActivityHandle.restoreOriginalOptions(), removing a builder state the server rejects outright. This also drops the "at least one option must be set" guard, which no longer holds now that the type serves as both request and response.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Implement operator commands for standalone activities
Adds pause, unpause, reset, and update-options to standalone activities, plus
the describe surface needed to observe their effects.
Standalone activities already supported start, result, describe, cancel, and
terminate. This adds the four operator commands the server exposes for them, so
an operator can hold, resume, restart, and retune a running activity without
going through a workflow.
Describe: payload fields are opt-in
DescribeActivityExecutionRequestgates four payload-bearing fields behindper-call flags (api#792). All four are now plumbed through
DescribeActivityOptionsand default to false.