-
Notifications
You must be signed in to change notification settings - Fork 18
Client ActivityType [Go] #179
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
dc13182 to
3bb375e
Compare
4e43179 to
3a55098
Compare
5e0a5ce to
6f1bd89
Compare
| } | ||
| }) | ||
|
|
||
| // Handle initial set. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Needs to be after signal handler is registered.
3c2b7c4 to
92d73d3
Compare
92d73d3 to
2cd1d99
Compare
343d863 to
84014ba
Compare
Sushisource
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking good to me. The C# bit might need some verification.
| let client_sequence = ClientSequence { | ||
| action_sets: vec![ClientActionSet { | ||
| actions: vec![u.arbitrary()?], | ||
| concurrent: false, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should this be allowed to be true? Seemingly the support is already there?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The support for Go is there but the support for the other SDKs isn't there yet. #188 will only add support for non-current client activity there.
| await LaunchActivity(execActivity, tokenSrc); | ||
| await HandleAwaitableChoiceAsync(Task.FromResult<object?>(null), tokenSrc, execActivity.AwaitableChoice); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmmm... not sure that's right. Probably we need to just fix HandleAwaitableChoice to not eat the exception in this case (though not sure why it is in the first place).
Otherwise I would expect something like var actAwait = LaunchActivity(execActivity, tokenSrc); and then passing that to HandleAwaitableChoiceAsync
<!--- Note to EXTERNAL Contributors --> <!-- Thanks for opening a PR! If it is a significant code change, please **make sure there is an open issue** for this. We work best with you when we have accepted the idea first before you code. --> <!--- For ALL Contributors 👇 --> ## What was changed <!-- Describe what has changed in this PR --> Prelude for #179: - adds partial history matching (when full matching won't work) - scopes build logs to test run - runs kitchen sink tests in parallel - fixes data race - adds new end-to-end ThroughputStress test ## Why? <!-- Tell your future self why have you made these changes --> Improve test experience. ## Checklist <!--- add/delete as needed ---> 1. Closes <!-- add issue number here --> 2. How was this tested: <!--- Please describe how you tested your changes/how we can test them --> 3. Any docs updates needed? <!--- update README if applicable or point out where to update docs.temporal.io -->
84014ba to
e1ff4a5
Compare
<!--- Note to EXTERNAL Contributors --> <!-- Thanks for opening a PR! If it is a significant code change, please **make sure there is an open issue** for this. We work best with you when we have accepted the idea first before you code. --> <!--- For ALL Contributors 👇 --> ## What was changed <!-- Describe what has changed in this PR --> Follow-up to #179 to include other SDKs. Adds new "Client" ActivityType to execute client actions (e.g. Update, Signal) from a workflow activity to TS, .NET and Python. The client action executor implementations were all modeled after the Go one. --- ℹ️ Concurrent execution of the client actions is out of scope for this PR. 🫘 I couldn't get Java to work; it's out of scope for this PR now. Sorry.⚠️ The ClientActionExecutors were mostly AI generated - with lots of manual pruning and fixing - but I can't quite vouch for them being 100% idiomatic. ## Why? <!-- Tell your future self why have you made these changes --> Narrow kitchensink support gap to Go. ## Checklist <!--- add/delete as needed ---> 1. Closes <!-- add issue number here --> 2. How was this tested: <!--- Please describe how you tested your changes/how we can test them --> 3. Any docs updates needed? <!--- update README if applicable or point out where to update docs.temporal.io -->
ℹ️ This PR includes the #189 PR; you can just look at the "Client ActivityType" commit for review.
What was changed
Adds new "Client" ActivityType to execute client actions (e.g. Update, Signal) from a workflow activity.
Why?
Checklist
Closes
How was this tested: