Standalone Activities start delay#455
Merged
Merged
Conversation
…ds, and new nullability for old fields, and a factory for creating the standalone version. Enums for activity id reuse and conflict policies. SAA-specific errors.
…e polling. Add test_async_completion_heartbeat_and_fail_standalone in addition to previous heartbeat test. Don’t use queue mechanism for gathering id info when it can be gotten directly.
Consistency of parameter names and ordering. Add static_details.
…he result exception
Test 2+ activit retries.
Use constant for “activity:” prefix.
Co-authored-by: Maciej Dudkowski <maciej.dudkowski@temporal.io>
…emporalio/sdk-ruby into gmt/ruby-standalone-activities
Co-authored-by: Maciej Dudkowski <maciej.dudkowski@temporal.io>
chris-olszewski
approved these changes
Jun 9, 2026
chris-olszewski
left a comment
Member
There was a problem hiding this comment.
I realize we're still developing what the CHANGELOG should look like, but I think we want to keep it fairly terse.
Co-authored-by: Chris Olszewski <chrisdolszewski@gmail.com>
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.
Add
start_delay:option toClient#start_activity/#execute_activityfor Standalone Activities.Mirrors the existing
Client#start_workflow(start_delay:)semantics on the activity side. When set, the server creates the activity immediately (visible in describe/list responses with statusRUNNING, run stateSCHEDULED) but defers dispatch to a worker until the delay elapses. Marked experimental per existing project convention.Spec
Public API surface
start_delay:kwarg (defaultnil) toTemporalio::Client#start_activityand#execute_activity.start_delayfield toClient::Interceptor::StartActivityInputso interceptors can observe / modify it.ArgumentError, 'start_delay must be non-negative'for negative values (matches dotnet'sArgumentException).nil/0are accepted as "no delay."StartActivityExecutionRequest.start_delay(proto field 22, already present in generated bindings — no proto regeneration needed).Behavior covered by tests
test_start_activity_rejects_negative_start_delayArgumentErrorraised pre-RPC for negative values (mirrors dotnet'sNegativeStartDelay_Throws)test_start_activity_with_start_delay_dispatches_after_delaylast_started_time - schedule_time >= delay - 500mstest_start_activity_with_zero_start_delay_dispatches_immediatelystart_delay: 0behaves like no delaytest_start_activity_with_nil_start_delay_dispatches_immediatelystart_delay: nilbehaves like no delaytest_cancel_during_start_delay_transitions_to_canceled_immediatelytest_terminate_during_start_delay_transitions_to_terminated_immediatelyterminatetest_start_delay_extends_schedule_to_start_timeoutScheduleToStarttimeout window begins after the delay (activity withschedule_to_start_timeout: 0.5sandstart_delay: 1.0sdispatches successfully)test_start_delay_extends_schedule_to_close_timeoutScheduleToClosetimeout window begins after the delay (same shape)Test environment
test/test.rb:dev_server_download_versionfromv1.7.0tov1.7.1-standalone-nexus-operationsto include SAA supprt.--dynamic-config-value activity.startDelayEnabled=trueto the dev-server args.