v1.26.0
Highlights
Nexus (Pre-Release)
Note: This feature requires a server version 1.25+ and must be enabled. For self-hosted see Trying Nexus Out. For Temporal Cloud Nexus support is available as public preview.
Temporal Nexus is a new feature of the Temporal platform designed to connect durable executions across team, namespace, region, and cloud boundaries. It promotes a more modular architecture for sharing a subset of your team’s capabilities via well-defined service API contracts for other teams to use, that abstract underlying Temporal primitives, like Workflows, or execute arbitrary code.
Learn more at temporal.io/nexus.
More Java-specific docs and samples coming soon.
Update-With-Start (Pre-Release)
Note: This feature requires a server version 1.24+ and must be enabled. For self-hosted you can set frontend.enableExecuteMultiOperation
. For Temporal Cloud please reach out to your Temporal account team or Temporal Support Team to enable update with start in your namespace.
This release adds support for Workflow Update-With-Start. Update-With-Start allows users to send a Workflow Update request along with a Start Workflow request in the same RPC. Users can think of Update-With-Start as analogous to Signal-With-Start except for Updates instead of Signals. To make an Update-with-start request users can call WorkflowClient.updateWithStart
.
Workflow Init
Added a new annotation @WorkflowInit
users can add to the constructor of their workflow implementations to specify that the constructor accepts the workflow input arguments. The constructor annotated with this annotation is called when a new workflow instance is created. It will be called before the main workflow method and any signal or update handlers. The constructor must be public and take the same arguments as the main workflow method. All normal workflow constraints also apply in the constructor.
NOTE: Workflow Init is currently NOT supported with our Spring-Boot integration
Upsert Memo
Added a new Workflow API Workflow.upsertMemo
. This allows users to modify a workflow's memo field inside the workflow. Normal determinism constraints apply to upsertMemo
.
User Metadata (Public Preview)
Note: This feature requires a server version 1.25+
This release adds support for user metadata inside Workflows. This lets users set custom metadata on Workflow executions and certain APIs inside workflow, that will be visible in the UI.
Currently, the Java SDK supports:
- Fixed "summary" and "details" on workflow start
- Fixed "summary" and "details" on child workflows
- Details on timer names through
TimerOptions
💥 BREAKING CHANGES
Workflow Update
- Changed the return type of
DynamicUpdateHandler::handleExecute
fromEncodedValues
→Object
to align with other dynamic handlers in the Java SDK. - Renamed
io.temporal.client.UpdateHandle
toio.temporal.client.WorkflowUpdateHandle
to align with other SDKs.
Workflow Registration
The SDK will now attempt to perform more validation on workflows at registration time rather then waiting until the workflow is invoked. Specifically the SDK now checks if a workflow has a default public constructor at registration time instead of invocation time.
Bugfixes
Refactored SDK internals to avoid holding onto large user payloads like activity or child workflow inputs after the operation was scheduled.
What's Changed
2024-09-03 - ecd26b7 - Rename UpdateHandle to WorkflowUpdateHandle (#2204)
2024-09-05 - add6c4e - Add support for upsert memo (#2202)
2024-09-12 - a173dbe - Fix Dynamic Update Handler return type (#2210)
2024-09-13 - 2163b8f - Test server support for async Nexus operations (#2198)
2024-09-16 - 03f7182 - Add support for user meta data (#2218)
2024-09-16 - 21d15ae - Add workflow init support (#2222)
2024-09-17 - 6f0cf07 - Fix timeout during operation retry (#2221)
2024-09-17 - 7525c65 - Test Server: Fix Nexus operation cancel before start (#2223)
2024-09-23 - 0e58687 - Add getMetricsScope interceptor (#2224)
2024-09-23 - 6150dc1 - Fill in namespace capabilities in describe response (#2228)
2024-09-23 - 71e89f9 - Block invalid calls in Await (#2225)
2024-09-23 - 97322ec - Update Test Server Capabilities (#2226)
2024-09-25 - 238c5e1 - Update-with-Start (#2199)
2024-09-25 - 52aa9e8 - Add option to configure the deadline of getSystemInfo (#2240)
2024-10-01 - 156f4f1 - SDKTestWorkflowRule wasn't calling shutdown (#2243)
2024-10-03 - 089bbea - Set CanceledFailureInfo for all canceled Nexus outcomes (#2253)
2024-10-08 - d1dc2e1 - Add update info to MDC context (#2259)
2024-10-10 - 393045d - Test server support for bidi links (#2258)
2024-10-10 - 92692b4 - Call shutdown RPC on worker shutdown (#2264)
2024-10-15 - af7b5b7 - Fix memory leak of command inputs (#2262)
2024-10-15 - eff3ca2 - Merge Nexus into Master (#2270)