Add standalone-activity support to throughput_stress (RE-353)#403
Add standalone-activity support to throughput_stress (RE-353)#403lilydoar wants to merge 3 commits into
Conversation
|
Verification run (local, server 1.31.0 via Scenario completed cleanly, and One caveat: Also pushed: regenerated Ruby kitchen-sink bindings ( |
Adds an include-standalone-activity scenario option that starts activities outside any workflow context via StartActivityExecution and waits for the outcome with PollActivityExecution, mirroring the include-standalone-nexus pattern (#339) and bench-go's standalone-activity throughputstress step (bench-go #357/#358). - kitchen_sink.proto: new ClientAction variant DoStandaloneActivity. - Go client-action executor: Start + Poll implementation; targets the existing noop activity on the workflow's task queue. - Other SDK workers raise UnsupportedOperation, like standalone Nexus. - Bindings regenerated via 'go run ./cmd/dev build-proto' (Go, Java, Python, .NET; Ruby pb not covered by build-proto - see PR notes). Requires server-side activity.enableStandalone.
protoc --ruby_out with the same require rewrite as the existing file (temporal/api/*_pb -> temporalio/api/*); build-proto does not cover Ruby.
ecb0d9d to
9c55cd1
Compare
The previous regen used a local protoc 7.x, producing gencode for protobuf runtimes newer than the repo pins (Java RuntimeVersion/ GeneratedFile, .NET end-group handling, protoc version headers) - which broke compilation against the pinned runtimes and failed the protos-up-to-date check. Rebuilt via 'dev install protoc' + 'dev build-proto' exactly as CI does. Ruby is intentionally untouched: CI does not regenerate it and its committed style matches main.
What was changed
Adds an
include-standalone-activityscenario option tothroughput_stressthat starts activities outside any workflow context viaStartActivityExecutionand waits for the outcome withPollActivityExecution— mirroring theinclude-standalone-nexuspattern (#339) and bench-go's standalone-activity throughputstress step (bench-go #357/#358).kitchen_sink.proto: newClientActionvariantDoStandaloneActivity(field 7).noopactivity on the workflow's task queue. Runs for both the loadgen runner and the Go worker (shared executor).UnsupportedOperation, exactly like standalone Nexus.go run ./cmd/dev build-proto(Go, Java, Python, .NET).Why
bench-go grew an
EnableStandaloneActivitytoggle (used by saas-cicd chasm e2e pipelines, with server dynamic configactivity.enableStandalone) after the bench→omes parity scan closed. omes had no standalone-activity coverage at all — this closes that gap so the saas-cicd e2e cutover (RE-264) isn't blocked on it. RE-353, part of epic RE-257.Notes for review
workers/ruby/.../kitchen_sink_pb.rb) is not covered bydev build-proto— if it's generated by a separate step, it needs a follow-up regen (the Ruby executor stub is in place).bdd2879), which I deliberately did not replicate: the option is opt-in, so failing loudly on unsupported servers seems preferable. Open to changing.go build,go test ./scenarios/ ./loadgen/kitchensink/pass. Not yet exercised against a server withactivity.enableStandalone— needs a verification run before un-drafting.