Temporal worker update process recommendation

Hi folks,

What is the recommended way to to update temporal worker with no down time? Our current setup works by deploying new bit to a parallel worker and stopping the old one. One problem we are experiencing with this is that the context cancelation causes ongoing activities to be failed.
Is there a way to set a worker in “drain” mode, allowing it to finish activity/workflow execution while accepting new workflow/activities on the new worker running in parallel.

Is there a recommended way to update workers with no downtime otherwise?
Thanks

We have the same problem. During deployments we see errors in the UI for new workflows:

“Workflow Worker Unhandled Failure”

{
  "message": "unable to find workflow type: NewWorkflowName. Supported types: [OldWorkflowA, OldWorkflowB]",
  "source": "GoSDK",
  "applicationFailureInfo": {}
}

Any advice would be appreciated.

I know this is more on the Go-SDK. But I’d like to know this as well.

I’m currently using the TypeScript SDK and I don’t know if I should use the runUntil() to signal the worker to stop processing requests.