Skip to content
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

Support upgrading handlers/loops easier #518

Open
recht opened this issue Jul 29, 2024 · 1 comment
Open

Support upgrading handlers/loops easier #518

recht opened this issue Jul 29, 2024 · 1 comment
Labels
enhancement New feature or request

Comments

@recht
Copy link

recht commented Jul 29, 2024

We have a couple of long-running workflows, which currently use workflow.GetVersion for backwards compatibility. The workflows usually sit in a loop handling signals. It would be very nice if it was possible to upgrade the signal handler code safely so that new signals run with the latest version while history is processed with the version used at that point in time.

Right now, workflow.GetVersion will always return the same value, so it gets locked into a specific behavior. It would be great if there was an alternative GetVersion, which would switch to the latest version once the history has been replayed, or some similar solution.

For reference here's the conversation from Slack: https://temporalio.slack.com/archives/CTRCR8RBP/p1721843534985449

@recht recht added the enhancement New feature or request label Jul 29, 2024
@Quinn-With-Two-Ns Quinn-With-Two-Ns transferred this issue from temporalio/sdk-go Aug 1, 2024
@Quinn-With-Two-Ns
Copy link
Contributor

Moving this issue to features because this applies to more then just the Go SDK. All SDKs should have similar features to make versioning signal handler easier.

@Quinn-With-Two-Ns Quinn-With-Two-Ns changed the title Support upgrading live workflows better Support upgrading handlers/loops easier Aug 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants