Skip to content

v1.25.0

Latest
Compare
Choose a tag to compare
@temporal-cicd temporal-cicd released this 09 Sep 23:25
· 133 commits to main since this release

Schema changes

Before upgrading your Temporal Cluster to v1.25.0, you must upgrade your core and visibility schemas to the following:

  • Core:
    • MySQL schema v1.14
    • PostgreSQL schema v1.14
    • Cassandra schema v1.11
  • Visibility:
    • Elasticsearch schema v7
    • MySQL schema 1.6
    • PostgreSQL schema v1.6

Please see our upgrade documentation for the necessary steps to upgrade your schemas.

Release Highlights

1. Nexus

Nexus RPC is an open-source service framework for arbitrary-length operations whose lifetime may extend beyond a traditional RPC. It is an underpinning connecting durable executions within and across namespaces, clusters and regions – with an API contract designed with multi-team collaboration in mind. A service can be exposed as a set of sync or async Nexus operations – the latter provides an operation identifier and a uniform interface to get the status of an operation or its result, receive a completion callback, or cancel the operation.

Temporal uses the Nexus RPC protocol to allow calling across namespace and cluster boundaries. The Go SDK Nexus proposal explains the user experience and shows sequence diagrams from an external perspective.

Read more here on how to enable Nexus and how to operate it here.

2. Workflow Update (public preview)

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 the WorkflowService.PollWorkflowExecutionUpdate API. 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.maxTotalUpdates controls the total number of Updates that a single Workflow Execution can support. The default is 2000.
  • history.maxInFlightUpdates controls 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.21 release, the feature was heavily tested and several bug fixes as well as performance optimizations were made.

You can find more information at this link.

3. Host level MutableState cache

The MutableState cache has been updated to operate as a host-level cache by default. Previously, this cache was managed at the shard level, with each shard cache holding 512 MutableState entries. Now, the host-level cache, enabled by default (history.enableHostHistoryCache = true), will be shared across all shards on a given host.

The size of the host-level cache is controlled by the history.hostLevelCacheMaxSize configuration, which is set to 128,000 entries by default. This change may impact the memory usage of the history service, but it can be adjusted by modifying the history.hostLevelCacheMaxSize value.

4. Visibility Enhancement

Enhanced the Nexus CLI to support query filtering for the schedule list command. The --query or -q (string) option allows filtering of results using a specified list filter.

5. Task Queue Statistics

Provide stats for Task Queue backlogs to be used for worker scaling decisions.

User DescribeTaskQueue API in enhanced mode (with report_stats=true) to get the following info about the Task Queue:

  • Approximate backlog count
  • Approximate backlog age
  • Approximate rate of adding tasks to the task queue
  • Approximate rate of dispatching tasks from the task queue

Helpful links to get you started with Temporal

Temporal Docs
Server
Docker Compose
Helm Chart

Docker images for this release

Server (use the tag 1.25.0)
Server With Auto Setup ([what is Auto-Setup?] (https://docs.temporal.io/blog/auto-setup)) (use the tag 1.25.0)
Admin-Tools (use the tag 1.25.0-tctl-1.18.1-cli-1.0.0)

Full Changelog: v1.24.0...v1.25.0