-
Notifications
You must be signed in to change notification settings - Fork 1
chore(deps): update temporalio/server docker tag to v1.29.1 #72
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
Open
renovate
wants to merge
1
commit into
master
Choose a base branch
from
renovate/temporalio-server-1.x
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
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
cf5c0ab to
0a692bc
Compare
0a692bc to
54a4c96
Compare
adae819 to
8a55c6a
Compare
aa0ab6b to
ff26a34
Compare
ff26a34 to
1c61f7e
Compare
1c61f7e to
339473e
Compare
04e723b to
cdeee58
Compare
49c02d0 to
bc2ff9d
Compare
e90488c to
0e75144
Compare
0e75144 to
b8b79fd
Compare
1043765 to
e77bbdb
Compare
e77bbdb to
2437772
Compare
707c9d5 to
62317e1
Compare
5456f9d to
219a101
Compare
219a101 to
18250e7
Compare
18250e7 to
03f6227
Compare
03f6227 to
a641207
Compare
a641207 to
bfd6fda
Compare
84db7d3 to
51b1d28
Compare
51b1d28 to
448b33e
Compare
448b33e to
cc658d8
Compare
cc658d8 to
228cbcf
Compare
db9b1bd to
5b1150a
Compare
5b1150a to
b3514b3
Compare
b3514b3 to
b06b870
Compare
b06b870 to
559650d
Compare
559650d to
7e04465
Compare
7e04465 to
660994f
Compare
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.
This PR contains the following updates:
1.22.1->1.29.1Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Release Notes
temporalio/temporal (temporalio/server)
v1.29.1Compare Source
Release Highlights
This patch release fixes an issue in Priority and Workflow Versioning.
It also fixes a bug in Workflow Retry for versioned workflows.
Full Changelog: temporalio/temporal@v1.29.0...v1.29.1
Helpful links to get you started with Temporal
Temporal Docs
Server
Docker Compose
Helm Chart
Docker images for this release
Server
Server With Auto Setup (what is Auto-Setup?)
Admin-Tools
v1.29.0Compare Source
Starting from next server release
1.30.0, for security reasons, Temporal docker images will be slimmed down and we are taking away the binaries and packages that don’t strictly need to be included. This includes:temporalio/servertemporalCLI - included inadmin-toolstctlandtctl-authorization-plugin- both are deprecated CLIsdockerize- used for templating the configuration, functionality that is now inlined in the server codebasecurl- not part of the Temporal distributiontemporalio/admin-toolstctlandtctl-authorization-pluginpython3libevcurljqyqmysql-clientpostgresql-clientexpattinicqlshTask queue fairness - pre-release
Description:
Task queue fairness allows you to control the execution order of workflows, activities, and child workflows within a single task queue by assigning fairness keys and weights. Note that priority keys take precedence over fairness assignments.
Fairness can be attached to workflows and activities using the latest versions of most SDKs. In order for priority to take effect on the server, you need to switch to set the dynamic config
matching.enableFairnesstotrueeither on specific task queues, namespaces, or globally.See more usage details here: Temporal - Task Queue Fairness Guide (Pre-Release)
Rollout operational task: (schema upgrade)
Versioning improvement
Bug fixes
RampingVersionPercentageChangedTimeis now visible from the Routing Config and can be accessed via aDescribeDeploymentcall (#8089)Improvements
Cloud rollout operational task:
Task queue config
Description:
Task queues can be now configured via the new
UpdateTaskQueueConfigendpoint. It allows configuring (1) the queue’s maximum requests per second and (2) default maximum requests per second for fairness keys (feature is in pre-release). For example, using the Temporal CLI 1.5.0 or later:Note that the rate limit for the task queue from the API takes precedence over the rate limit set via the worker’s
TaskQueueActivitiesPerSecondoption. If the API rate limit is unset again, it will fall back to the worker’s rate limit again, if set. Otherwise the system’s default limit is applied.Authorizer
Description: Added a new dynamic config (
frontend.exposeAuthorizerErrors) to control whether the frontend authorization interceptor should propagate errors returned by theAuthorizercomponent as-is or wrap them with aPermissionDeniedservice error. Default isfalse, meaning all errors will be wrapped withPermissionDenied, which matches current behavior to avoid breaking any customAuthorizerimplementers.Eager workflow start public release (on by default)
Description: Eager workflow start is a latency optimization for worker and a starter a colocated in the same process. If the starter (client) requests eager execution, and a worker slot is available, the client will request the server to start the workflow eagerly. If permitted (the dynamic
config is on, and there's no start delay), the first workflow task will be returned inline to be processed by the colocated worker.
This feature is now on by default and the
EagerExecutionAcceptedflag has been added toWorkflowExecutionStartedEventAttributesfor debugging purposes (#8056)To turn this feature off set the dynamic config
system.enableEagerWorkflowStarttofalse.Activity and workflow metrics changes
Description: A number of activity and workflow metrics were added and
activity_e2e_latencyhas been deprecated. (#8196, #8185)Deprecated Metrics
activity_e2e_latency→ Deprecated, replaced with better named activity_start_to_close_latencyNew Metrics
activity_start_to_close_latency: Per attempt latency from activity start to closeactivity_schedule_to_close_latency: End-to-end duration, including retries and backoff.activity_success: Number of succeeded activitiesactivity_fail: Number of final failures for activitiesactivity_timeout: Incremented on the final activity timeout tagged bytimeout_typeactivity_task_fail: Failures for activities including retriesactivity_task_timeout: Number of activity attempt timeouts, tagged bytimeout_type.activity_cancel: Number of canceled activitiesworkflow_duration: End to end latency of workflowBatch operation improvement
Description: Removed the internal
BatchParamsgo struct in favor of a protobuf struct for safer serialization. Optimized the batch operation processing with proactive page fetching, removing the worker wait for new pages to be completed. (#8144, #8081).Batch Activity Reset and Update Options
Description: Support activity reset and update-options on the server side. (#8061)
Nexus
Description:
NamespaceNotActiveerror.component.nexusoperations.recordCancelRequestCompletionEvents. This config will be removed in a future release.frontend.nexusForwardRequestUseEndpointDispatch, because endpoints currently do not support replication and therefore forwarding requests by endpoint will not work out of the box.NexusOperationCancelRequestCompleted|Failedevents.Visibility
Description:
ScanWorkflowExecutionshas been removed from Visibility. The API is still available, but it simply callsListWorkflowExecutions.Worker Insights
Description: Worker insights is an umbrella project that addresses the operational complexities and toil of worker management (tuning performance knobs, scaling workers). Our end goal is to automate this process for our users. As a first step, this release adds the capability to propagate the worker state (configuration + SDK metrics) to the server via a heartbeat mechanism. This state is stored in-memory on the matching servers, and can be queried by the user.
To achieve this, this release introduces 3 APIs:
These APIs are disabled by default.
Flags are:
frontend.WorkerHeartbeatsEnabledandfrontend.ListWorkersEnabled.Helpful links to get you started with Temporal
Temporal Docs
Server
Docker Compose
Helm Chart
Docker images for this release (use the tag
1.29.0)Server
Server With Auto Setup (what is Auto-Setup?)
Admin-Tools
Full Changelog: temporalio/temporal@v1.28.1...v1.29.0
v1.28.1Compare Source
This patch release fixes a few Workflow Update, Worker Deployment, Scheduler, Matching, and security bugs.
Helpful links to get you started with Temporal
Temporal Docs
Server
Docker Compose
Helm Chart
Docker images for this release (use the tag
1.28.1)Server
Server With Auto Setup (what is Auto-Setup?)
Admin-Tools
Full Changelog: temporalio/temporal@v1.28.0...v1.28.1
v1.28.0Compare Source
Schema changes
Before upgrading your Temporal Cluster to v1.28.0, you must upgrade your core schemas to the following:
Please see our upgrade documentation for the necessary steps to upgrade your schemas.
Deprecation Announcements
Deprecating old Versioning APIs: The following APIs related to previous versions of Worker Versioning are deprecated.
The following APIs related to the December 2024 pre-release of Worker Versioning have been deprecated and are now no longer supported:
DescribeDeploymentListDeploymentsGetDeploymentReachabilityGetCurrentDeploymentSetCurrentDeploymentThe following APIs are now deprecated and will be removed once the latest APIs reach to General Availability in the coming months:
UpdateWorkerVersioningRulesGetWorkerVersioningRulesUpdateWorkerBuildIdCompatibilityGetWorkerBuildIdCompatibilityGetWorkerTaskReachabilityRelease Highlights
Update-With-Start GA
Update-With-Start sends a Workflow Update that checks whether an already-running Workflow with that ID exists. If it does, the Update is processed. If not, it starts a new Workflow Execution with the supplied ID. When starting a new Workflow, it immediately processes the Update.
Update-With-Start is great for latency-sensitive use cases.
Nexus - Back Multiple Operations by Single Workflow
Now you can have multiple callers starting operations backed by a single workflow. When the handler tries to start a workflow that is already running, with the “use existing” conflict policy, the server will attach the caller’s callback to the running workflow. When the workflow completes, the server will call all attached callbacks to notify the callers with the workflow result.
Here’s an example using Go SDK (available in v1.34.0+):
The handler workflow will return a
RequestIdReferenceLinkto the caller. This is an indirect link to the history event that attached the callback in the handler workflow. Links can provide information about the handler workflow to the caller. In order to get the exact event history, there is now theRequestIdInfosmap in theWorkflowExtendedInfofield of aDescribeWorkflowExecutionResponse. To enableRequestIdReferenceLink, you have to set the dynamic confighistory.enableRequestIdRefLinkstotrue(this might become enabled by default in a future release).Nexus - Callback ↔ Link Association
Nexus links were previously stored in the history event not directly associated with the callback that it came together. Now, the server is storing the Nexus links together with the callback. With this direct association, you can easily find out the caller that triggered the Nexus workflow from the callback through these links for example. This feature requires the latest version of Go SDK (v1.35.0+) and Java SDK (v1.30.0+).
Nexus - Cancellation Types
The server now supports Nexus operation cancellation types. These are specified when starting an operation and indicate what should happen to Nexus operations when the parent context that started them is cancelled. To use them, you must be using an SDK version that supports them. Available cancellation types are:
Abandon- Do not request cancellation of the operationTryCancel- Request cancellation of the operation and immediately report cancellation to callersWaitRequested- Request cancellation and wait until the cancellation request has been received by the operation handlerWaitCompleted- Request cancellation and wait for the operation to complete. The operation may or may not complete as cancelled. Default and behavior for server versions <1.28For the
WaitRequestedtype to work, you must set the dynamic configcomponent.nexusoperations.recordCancelRequestCompletionEventstotrue(defaultfalse).Nexus - Miscellaneous
Versioning / Safe-Deploy Public Preview
The following Worker Versioning APIs graduated into Public Preview stage. Production usage is encouraged but note that limited changes might be made to the APIs before General Availability in the coming months.
Using Worker Versioning: Find instructions in https://docs.temporal.io/worker-versioning.
Operator notes:
frontend.workerVersioningWorkflowAPIs(default: true)system.enableDeploymentVersions(default: true)matching.maxDeploymentscontrols the maximum number of worker deployments that the server allows to be registered in a single namespace (default: 100, safe to increase to much higher values)matching.maxVersionsInDeploymentcontrols the maximum number of versions that the server allows to be registered in a single worker deployments (default: 100, unsafe to increase beyond a few 100s)matching.maxTaskQueuesInDeploymentVersioncontrols the maximum number of task queues that the server allows to be registered in a single worker deployment version (default: 100, unsafe to increase beyond a few 100s)matching.wv.VersionDrainageStatusVisibilityGracePeriodsystems waits for this amount of time before checking the drainage status of a version that just entered in DRAINING state (default: 3 minutes, setting a very low value might cause the status to become DRAINED incorrectly)matching.wv.VersionDrainageStatusRefreshIntervalinterval used for checking drainage status (default: 3 minutes, lowering the value will increase load on the Visibility database)Please see deprecation warnings regarding earlier versions of Temporal versioning APIs.
If you used Worker Versioning in v1.27.x, you must delete all Worker Deployments (via
DeleteWorkerDeployment) before upgrading to v1.28.0, then recreate them after. This is due to breaking changes between v1.27.2 and v1.28.0.If you already upgraded or need help, ask in
#safe-deployson Community Slack.Simple priority for task queues - pre-release
Simple priority allows you to control the execution order of workflows, activities, and child workflows based on assigned priority values within a single task queue. You can select a priority level in the integer range [1,5]. A lower value implies higher priority.
Priority can be attached to workflows and activities using the latest versions of most SDKs. In order for priority to take effect on the server, you need to switch to the new implementation of the matching service: set the dynamic config
matching.useNewMatchertotrueeither on specific task queues, namespaces, or globally. After the new matcher has been turned on for a task queue, turning it off will cause tasks with non-default priority to be temporarily lost until it’s turned on again.When the setting is changed, the implementation will be switched immediately, which may cause a momentary disruption in task dispatch.
Besides enabling priority, the new matcher will have a different profile of persistence operations, and slightly different behavior with task forwarding and some other edge cases. If you see performance regressions or unexpected behavior with the new matcher, please let us know.
See more usage details here: Temporal - Task Queue Priority Guide (Pre-Release)
Operator commands
PAUSEDandPAUSE_REQUESTEDto activity state. This allows to distinguish between the situation when pause signal is received, but activity is still running on the worker.ActivityPause/ActivityResetflag in heartbeat response. This notifies the workers about activity state.ResetActivityandUpdateActivityOptionscommands.Reset workflow with pending child
The Temporal server now supports resetting workflows even when the resulting new run has pending child workflows. Previously, such reset attempts were rejected if the new run appeared to have one or more pending child workflows.
With this update:
This change improves flexibility and reliability in handling resets for workflows with children in various states.
Behavior Matrix
Send raw history event from history service to frontend service
Description: A new dynamic configuration
history.sendRawHistoryBetweenInternalServiceshas been introduced. When enabled, the history service sends raw history event blobs to the frontend and matching services duringGetWorkflowExecutionHistoryandRecordWorkflowTaskStartedAPI calls. This reduces CPU usage on the history service by eliminating event decoding. The frontend service handles decoding before responding to clients, ensuring no impact on SDKs or other clients without adding extra CPU load to the frontend.This configuration should only be enabled after all services have been upgraded to version v1.28, and must be disabled before downgrading to any version earlier than v1.28.
Miscellaneous / Bug Fixes
executionstable for Cassandra-backed clusters contains additional columns (chasm_node_map).chasm_node_maps, has been added to SQL-backed clusters.ListSearchAttributesResponse.StorageSchemais no longer being populated.DescribeTaskQueuecontains a newStatsfield that contains the task queue’s statsstatsd.framework: opentelemetryto try it out and report any issues.Helpful links to get you started with Temporal
Temporal Docs
Server
Docker Compose
Helm Chart
Docker images for this release (use the tag
1.28.0)Server
Server With Auto Setup (what is Auto-Setup?)
Admin-Tools
Full Changelog: temporalio/temporal@v1.27.2...v1.28.0
v1.27.3Compare Source
Release Highlights
Helpful links to get you started with Temporal
Temporal Docs
Server
Docker Compose
Helm Chart
Docker images for this release (use the tag
1.27.3)Server
Server With Auto Setup (what is Auto-Setup?)
Admin-Tools
Full Changelog: temporalio/temporal@v1.27.2...v1.27.3
v1.27.2Compare Source
This patch release fixes a few minor Worker Deployment and Nexus bugs.
Helpful links to get you started with Temporal
Temporal Docs
Server
Docker Compose
Helm Chart
Docker images for this release (use the tag
1.27.2)Server
Server With Auto Setup (what is Auto-Setup?)
Admin-Tools
Full Changelog: temporalio/temporal@v1.27.1...v1.27.2
v1.27.1Compare Source
Schema Changes
Before upgrading your Temporal Cluster to v1.27.1, you must upgrade your core schema if you are using MySQL or PostgreSQL, and your visibility schema to the following:
Please see our upgrade documentation for the necessary steps to upgrade your schemas.
NOTE: The upgrade to MySQL and PostgreSQL Visibility schemas may come with temporary performance degradation because of creation of a new column
_versionwhich has default values. Consider performing the schema upgrades when load is low. There are protective mechanisms in place to account for timeouts from any VisibilityStore.Deprecation of Visibility Scan APIs
Visibility Scan APIs have been deprecated in favor of List Workflow APIs. Visibility Scan APIs will be removed in a future version. Migration to List Workflow APIs will be required in future versions.
Nexus GA
Nexus is now GA with a stable server API.
Read more here on how to disable Nexus or how to operate it here.
Notable features and bug fixes since
v1.26.2:StartWorkflowExecutionRequest.OnConflictOptionswithWorkflowIdConflictPolicyofUSE_EXISTING. This allows multiple operations to be backed by the same workflow.Safe Deploys
The following APIs are added for Worker Versioning. All APIs are experimental and not yet recommended for production usage. You need to set the dynamic configs
system.enableDeploymentsandsystem.enableDeploymentVersionsin order to use them.The following APIs are now deprecated and replaced by above:
DescribeDeploymentListDeploymentsGetDeploymentReachabilityGetCurrentDeploymentSetCurrentDeploymentActivity Commands (pre-release)
Changes to the Activity Commands — a set of APIs designed to resolve issues related to activity execution. The following APIs where updated:
UpdateActivityOptionsByIdwas renamed toUpdateActivityOptions. This API can be used by the client to update the options of an activity while activity is running.PauseActivityByIdwas renamed toPauseActivity. With this API, If the Activity is not currently running (e.g. because it previously failed and is waiting for the next retry), it will not be run again until it is unpaused.activity_typeparameter was added. If this parameter is set - all running activities of this type will be paused.UnpauseActivityByIdwas renamed toUnpauseActivity. With this API clients can re-schedule a previously-paused Activity for execution.no_waitparameter was removedactivity_typeparameter was added. If this parameter is set - all paused activities of this type will be unpaused.match-allparameter was added. If this parameter is set - all paused activities will be unpaused.jitterparameter was added. If set, the activity will start at a random time within the specified jitter duration.ResetActivityByIdwas renamed toResetActivity. With this API clients can reset the execution of an activity, specified by its ID or type.no_waitparameter was removedactivity_typeparameter was added. If this parameter is provided - all paused activities of this type will be unpaused.keep_pausedparameter was added. If this parameter is provided - all paused activities will stay paused. Otherwise they will be unpaused.jitterparameter was added. If set, the activity will start at a random time within the specified jitter duration.BatchOperationUnpauseActivities.Workflow Reset with children
In this release we have added the functionality to reset a workflow with a pending child.
Prior to this release reseting to a point between child workflow initiated and child workflow completed was not supported (the reset operation would fail). In the current release the reset operation will allow this case and the behavior of the parent after reset is to reconnect to the running child. The new run of the parent will receive the child’s completion event and result (if any) from the child.
The feature is gated behind a per namespace boolean dynamic configuration
AllowResetWithPendingChildrenwhich is enabled by default for all namespaces.Note: If you are using Go-SDK and are relying on the SDK to generate child workflow IDs then you need to update it to the latest version to be able to use this feature. Other SDKs don’t need any upgrade to use this feature.
Delete namespace improvement
Delete workflow executions RPS is now dynamic. Previously,
frontend.deleteNamespaceDeleteActivityRPSwas read only once when namespace deletion started, and subsequent changes to this dynamic config didn't affect the ongoing deletion. This was inconvenient for large namespaces since the default RPS is only100. Now the RPS can be adjusted on the fly.Please note: Since deletion of Workflow Execution is an asynchronous process, this RPS controls the rate at which delete execution tasks are created. Decreasing this value (for example, from
1000to10) won't immediately slow down the process, as existing tasks in the transfer queue must be processed first.DeleteExecutionsWorkflownow supports astatsquery to track its progress. Since this Workflow can run for hours after a namespace is marked as deleted, it was previously difficult to monitor how many Workflow Executions remained. The new query handler provides current statistics about total and remaining executions.Metrics and logging have been enhanced for better actionability. Key improvements include:
ReclaimResourcesworkflow failures using the metricsreclaim_resources_namespace_delete_failureandreclaim_resources_delete_executions_failure.DeleteExecutionsWorkflowprogress using the metricsdelete_executions_successanddelete_executions_failure.Business critical namespaces can be protected from deletion. Use dynamic config to list namespaces which are not deletable:
Sleep duration in
ReclaimResourcesWorkflownow supports dynamic changes. If a namespace delete delay was mistakenly set too long, you can now modify it after the Workflow has started. Use this command to update the delay to a new value (10 hours in this example):Or use this command to remove the delay entirely:
Please note: The new delay starts from when it is set, not from when the original timer was created. For example, if the Workflow has already slept for 2 hours and the timer is updated to
10h, it will sleep for another 10 hours, not 8.Scheduled Actions
FutureActionTimesnow accounts for a schedule’s update time andRemainingActions.ScheduleActionResultnow includes aWorkflowExecutionStatusfield, providing an eventually-consistent view of a workflow’s status within List results.Fix out-of-order Visibility tasks with SQL database
All SQL stores used for Visibility had the rare possibility to perform updates to a workflow's visibility state out-of-order. This could result in Workflows occasionally appearing to have state that is out of date.
Implementation
This has been fixed by adding a new column
_versionto all SQL store implementations. Queries to update Visibility data now ensure the_versionadvances before performing any writes.Updates to Visibility data are prepared by checking actual Workflow state. Therefore when a write is rejected for being out-of-order, we know the VisibilityStore already contains a equal or more up-to-date state, so we drop out-of-order updates silently.
Important Notes
Helpful links to get you started with Temporal
Temporal Docs
Server
Docker Compose
Helm Chart
Docker images for this release (use the tag
1.27.1)Server
Server With Auto Setup (what is Auto-Setup?)
Admin-Tools
Full Changelog: temporalio/temporal@v1.26.2...v1.27.1
v1.27.0Compare Source
Schema Changes
Before upgrading your Temporal Cluster to v1.27.0, you must upgrade your core schema if you are using MySQL or PostgreSQL, and your visibility schema to the following:
Please see our upgrade documentation for the necessary steps to upgrade your schemas.
NOTE: The upgrade to MySQL and PostgreSQL Visibility schemas may come with temporary performance degradation because of creation of a new column
_versionwhich has default values. Consider performing the schema upgrades when load is low. There are protective mechanisms in place to account for timeouts from any VisibilityStore.Deprecation of Visibility Scan APIs
Visibility Scan APIs have been deprecated in favor of List Workflow APIs. Visibility Scan APIs will be removed in a future version. Migration to List Workflow APIs will be required in future versions.
Nexus GA
Nexus is now GA with a stable server API.
Read more here on how to disable Nexus or how to operate it here.
Notable features and bug fixes since
v1.26.2:StartWorkflowExecutionRequest.OnConflictOptionswithWorkflowIdConflictPolicyofUSE_EXISTING. This allows multiple operations to be backed by the same workflow.Safe Deploys
The following APIs are added for Worker Versioning. All APIs are experimental and not yet recommended for production usage. You need to set the dynamic configs
system.enableDeploymentsandsystem.enableDeploymentVersionsin order to use them.The following APIs are now deprecated and replaced by above:
DescribeDeploymentListDeploymentsGetDeploymentReachabilityGetCurrentDeploymentSetCurrentDeploymentActivity Commands (pre-release)
Changes to the Activity Commands — a set of APIs designed to resolve issues related to activity execution. The following APIs where updated:
UpdateActivityOptionsByIdwas renamed toUpdateActivityOptions. This API can be used by the client to update the options of an activity while activity is running.PauseActivityByIdwas renamed toPauseActivity. With this API, If the Activity is not currently running (e.g. because it previously failed and is waiting for the next retry), it will not be run again until it is unpaused.activity_typeparameter was added. If this parameter is set - all running activities of this type will be paused.UnpauseActivityByIdwas renamed toUnpauseActivity. With this API clients can re-schedule a previously-paused Activity for execution.no_waitparameter was removedactivity_typeparameter was added. If this parameter is set - all paused activities of this type will be unpaused.match-allparameter was added. If this parameter is set - all paused activities will be unpaused.jitterparameter was added. If set, the activity will start at a random time within the specified jitter duration.ResetActivityByIdwas renamed toResetActivity. With this API clients can unpauses the execution of a previously paused activity, specified by its ID.no_waitparameter was removedactivity_typeparameter was added. If this parameter is provided - all paused activities of this type will be unpaused.keep_pausedparameter was added. If this parameter is provided - all paused activities will stay paused. Otherwise they will be unpaused.jitterparameter was added. If set, the activity will start at a random time within the specified jitter duration.BatchOperationUnpauseActivities.Workflow Reset with children
In this release we have added the functionality to reset a workflow with a pending child.
Prior to this release reseting to a point between child workflow initiated and child workflow completed was not supported (the reset operation would fail). In the current release the reset operation will allow this case and the behavior of the parent after reset is to reconnect to the running child. The new run of the parent will receive the child’s completion event and result (if any) from the child.
The feature is gated behind a per namespace boolean dynamic configuration
AllowResetWithPendingChildrenwhich is enabled by default for all namespaces.Note: If you are using Go-SDK and are relying on the SDK to generate child workflow IDs then you need to update it to the latest version to be able to use this feature. Other SDKs don’t need any upgrade to use this feature.
Delete namespace improvement
Delete workflow executions RPS is now dynamic. Previously,
frontend.deleteNamespaceDeleteActivityRPSwas read only once when namespace deletion started, and subsequent changes to this dynamic config didn't affect the ongoing deletion. This was inconvenient for large namespaces since the default RPS is only100. Now the RPS can be adjusted on the fly.Please note: Since deletion of Workflow Execution is an asynchronous process, this RPS controls the rate at which delete execution tasks are created. Decreasing this value (for example, from
1000to10) won't immediately slow down the process, as existing tasks in the transfer queue must be processed first.DeleteExecutionsWorkflownow supports astatsquery to track its progress. Since this Workflow can run for hours after a namespace is marked as deleted, it was previously difficult to monitor how many Workflow Executions remained. The new query handler provides current statistics about total and remaining executions.Metrics and logging have been enhanced for better actionability. Key improvements include:
ReclaimResourcesworkflow failures using the metricsreclaim_resources_namespace_delete_failureandreclaim_resources_delete_executions_failure.DeleteExecutionsWorkflowprogress using the metricsdelete_executions_successanddelete_executions_failure.Business critical namespaces can be protected from deletion. Use dynamic config to list namespaces which are not deletable:
Sleep duration in
ReclaimResourcesWorkflownow supports dynamic changes. If a namespace delete delay was mistakenly set too long, you can now modify it after the Workflow has started. Use this command to update the delay to a new value (10 hours in this example):Or use this command to remove the delay entirely:
Please note: The new delay starts from when it is set, not from when the original timer was created. For example, if the Workflow has already slept for 2 hours and the timer is updated to
10h, it will sleep for another 10 hours, not 8.Scheduled Actions
FutureActionTimesnow accounts for a schedule’s update time andRemainingActions.ScheduleActionResultnow includes aWorkflowExecutionStatusfield, providing an eventually-consistent view of a workflow’s status within List results.Fix out-of-order Visibility tasks with SQL database
All SQL stores used for Visibility had the rare possibility to perform updates to a workflow's visibility state out-of-order. This could result in Workflows occasionally appearing to have state that is out of date.
Implementation
This has been fixed by adding a new column
_versionto all SQL store implementations. Queries to update Visibility data now ensure the_versionadvances before performing any writes.Updates to Visibility data are prepared by checking actual Workflow state. Therefore when a write is rejected for being out-of-order, we know the VisibilityStore already contains a equal or more up-to-date state, so we drop out-of-order updates silently.
Important Notes
Helpful links to get you started with Temporal
Temporal Docs
Server
Docker Compose
Helm Chart
Docker images for this release (use the tag
1.27.0)Server
Server With Auto Setup (what is Auto-Setup?)
Admin-Tools
Full Changelog: temporalio/temporal@v1.26.2...v1.27.0
v1.26.3Compare Source
Release Highlights
Helpful links to get you started with Temporal
Temporal Docs
Server
Docker Compose
Helm Chart
Docker images for this release (use the tag
1.26.3)Server
Server With Auto Setup (what is Auto-Setup?)
Admin-Tools
Full Changelog: temporalio/temporal@v1.26.2...v1.26.3
v1.26.2Compare Source
Visibility schema changes
TemporalPauseInfocolumn was added to visibility.TemporalPauseInfocontains search attribute related to paused entities in temporal workflows.Before upgrading your Temporal Cluster to v1.26.2, you must upgrade your visibility schemas to the following:
Batch metrics (wide events)
PR: #6655
Description: Extended
metrics.Handlerinterface with a newStartBatchmethod. StartBatch returns a BatchHandler that can be used to send a sequence of metrics as a single event when Close() is called on the batch. All provided metric handlers have been updated with the new interface and simply send metrics individually.💥 BREAKING CHANGE 💥 If you provide a custom metrics handler with
temporal.WithCustomMetricsHandler(metricsHandler)you will need to implementStartBatch()on that handler. See the tally metrics handler for an example of this.Versioning / safe deploy (pre-release)
The following EXPERIMENTAL Versioning APIs are added in this release:
DescribeDeploymentListDeploymentsGetCurrentDeploymentSetCurrentDeploymentGetDeploymentReachabilityUpdateWorkflowExecutionOptionsAPI (and its batch mode) for setting versioning override for executions.Documentation is not available at this point. Do not use above APIs in production.
To enable these APIs the following configs should be enabled:
system.enableDeploymentsandfrontend.workerVersioningWorkflowAPIs.Workflow Update GA
Description:
Workflow Update enables a gRPC client of a Workflow Execution to issue requests to that Workflow Execution and receive a response. These requests are delivered to and processed by a client-specified Workflow Execution. Updates are differentiated from Queries in that the processing of an Update is allowed to modify the state of a Workflow Execution. Updates are different from Signals in that an Update returns a response.
Any gRPC client can invoke Updates via the
WorkflowService.UpdateWorkflowExecution. Additionally, past Update requests can be observed via theWorkflowService.PollWorkflowExecutionUpdateAPI. The wait stage option determines whether they respond once the Update was accepted or completed.Note that an Update only becomes durable when it was accepted, until then, it will not appear in the Workflow history. SDKs will automatically retry to ensure Update requests complete.
The execution and retention of Updates is configured via two optional dynamic configuration values:
history.maxTotalUpdatescontrols the total number of Updates that a single Workflow Execution can support. The default is 2000.history.maxInFlightUpdatescontrols the number of Updates that can be “in-flight” (that is, concurrently executing, not having completed) for a given Workflow Execution. The default is 10.Since the 1.25 release, several minor bugs have been fixed.
Workflow Update-With-Start (public preview)
Update-With-Start sends a Workflow Update that checks whether an already-running Workflow with that ID exists. If it does, the Update is processed. If not, it starts a new Workflow Execution with the supplied ID. When starting a new Workflow, it immediately processes the Update.
Update-With-Start is great for latency-sensitive use cases.
Activity API (pre-release)
Description:
We introduce the Activity API — a set of APIs designed to resolve issues related to activity execution. The following APIs where introduced:
--no-wait.Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.