Highlights
Priority (Pre-release)
Users can now set a priority key when scheduling a workflow, activity or child workflows. The priority key will be used to help prioritize certain tasks over others when there is a backlog. Priority is currently not supported in any OSS Temporal release, but support will be coming soon. To experiment with this feature please see the pre-release development server or if you are a Temporal Cloud customer reach out to your SA.
Versioning / Safe Deploy (Pre-release)
This release introduces a preview of new APIs that gracefully manage code changes and worker pools that support them. The goal is to better control which workers should execute new, and existing, workflows and activities tasks, based on their code and configuration.
AUTO_UPGRADE
and PINNED
are two Versioning Behaviors that can be specified on a workflow implementation using the versioning_behavior
argument to @workflow.defn
. PINNED
workflows are typically short lived, and are never affected by new versions, i.e., they do not need to use the patch API for compatibility. AUTO_UPGRADE
workflows are mostly long running, but they need to use patching to safely transition to new versions. The choice of PINNED
vs AUTO_UPGRADE
ultimately depends on your willingness to keep old worker fleets running vs the complexity of patching.
To manage Worker Deployments please use the Temporal CLI, or Client.workflow_service
Automatic Poller Scaling
You can configure Workers to automatically adjust the number of concurrent polls they make for tasks! Set the workflow_task_poller_behavior
and activity_task_poller_behavior
arguments of the Worker
constructor to PollerBehaviorAutoscaling
to try it out. You can expect fewer unnecessary polls during low load, and increased polls during high load when they can be used to increase task throughput.
Specific Changes
2025-02-19 - 49ca10e - uv + maturin migration (#768)
2025-03-26 - b0dfaef - Evolve observability documentation (#797)
2025-03-27 - 65b10bf - Silence passing test (#804)
2025-03-27 - d219870 - Check for grpc status details before indexing & unpacking (#801)
2025-03-28 - bf747f1 - Workflow/Activity Priorities (#802)
2025-03-31 - 92b7758 - Expose root workflow execution (#805)
2025-04-04 - 7ffa822 - Improve workflow task deadlock and eviction (#806)
2025-04-07 - dfc6e7f - Add workflow.in_workflow() utility (#799)
2025-04-10 - 1296cd7 - Allow even-parentless workflow spans to always be created (#817)
2025-04-10 - f5e6d20 - Unskip update tests under java test server (#644)
2025-04-10 - fb3dccd - Treat TimeoutError as workflow/update failure instead of task failure (#800)
2025-04-16 - fd49c4e - Worker Deployment Versioning (#821)
2025-04-18 - 127835e - Expose poller autoscaling options (#830)
2025-04-18 - 4933dc5 - Data converter non-string keys (#833)
2025-04-18 - 52bc5cf - Investigate test flakes (#832)
2025-04-21 - 3d10ba6 - Enhancement/allow custom metric buckets (#781)
2025-04-21 - 6f31556 - Fix protobuf version in build-binaries wheel test (#836)
2025-04-22 - 2025f07 - Add dynamic config function (#842)
2025-04-23 - bc82930 - Add VERCEL_PROJECT_ID and VERCEL_ORG_ID (#844)