💥 BREAKING CHANGES
Update With Start (Pre-release)
WorkflowClient
WorkflowClient.updateWithStart
has been renamed toWorkflowClient.startUpdateWithStart
.- Instead of taking the workflow method, workflow arguments and a
UpdateWithStartWorkflowOperation
,WorkflowClient.startUpdateWithStart
now takes the update method, update arguments and aWithStartWorkflowOperation
.WithStartWorkflowOperation
contains the workflow method and workflow arguments to be executed together with the update request.
WorkflowStub
WorkflowStub.updateWithStart
has been renamed toWorkflowStub.startUpdateWithStart
.WorkflowStub.startUpdateWithStart
now just takes theUpdateOptions
, update arguments and workflow arguments.
Update (Public Preview)
- The SDK now preforms more rigorous type validation when registering a Workflow with an
@UpdateValidatorMethod
to make sure the type parameters match the linked@UpdateMethod
. - The SDK will no longer sometimes throw
WorkflowUpdateException
when callingWorkflowStub.startUpdate
if the update is rejected.WorkflowUpdateException
is now consistently throw when getting the result of the update UpdateOptionsBuilder
no longer generates a update ID when built. Now a unique UUID is generated when the options are used. This is similar to howWorkflowOptions
and workflow ID work.
Nexus (Public Preview)
- Workflow started by a Nexus operation now require the Workflow ID to be specified in the
WorkflowOptions
. - The SDK now preforms more rigorous type validation when registering a Nexus Service to make sure it implements the service properly.
- All header maps for Nexus operations are now properly case-insensitive.
Highlights
Virtual Threads (Public Preview)
The Java SDK now has experimental support for virtual threads when using a JVM with a version of 21 or higher. Virtual threads can be used inside workflows by enabling WorkerFactoryOptions.setUsingVirtualWorkflowThreads
. Users can also use virtual threads for task processing in a worker by enabling WorkerOptions.setUsingVirtualThreads
.
Nexus (Public Preview)
WorkerInterceptor
now has support for intercepting Nexus workers.
Update (Public Preview)
WorkflowClient
now has a set of static methods called startUpdate
that can be used to start an update, but not immediately wait on the result. This is a type safe analog to WorkflowStub.startUpdate
.
Workflow Metadata (Public Preview)
- The Java SDK now exposes a fixed summary option for local and normal activities.
- The Java SDK now support
__temporal_workflow_metadata
query, this query allows users to get details about a workflow like its’ current description and what signal, update, and query handlers are registered.
What's Changed
2024-10-16 - acfadbf - Avoid spamming retries in nexusOperationApplicationFailureFailureConversion (#2272)
2024-10-16 - eb64ec3 - Fix code coverage (#2275)
2024-10-17 - 25f5536 - Fix Null pointer exception on passing empty search attribute (#2277)
2024-10-21 - 0ce1d6e - Bump edge test dependencies (#2279)
2024-10-21 - 301e129 - Fix test server operation timeout (#2282)
2024-10-21 - ac3526b - Avoid warning from un-accessed operation promise (#2280)
2024-10-22 - 3410677 - Fix UpdateWithStart untyped operation (#2288)
2024-10-22 - 7bcade2 - Fix UpdateWithStart workflow args (#2286)
2024-10-24 - 27d998a - Add failure_reason to nexus_task_execution_failed (#2274)
2024-10-24 - 805833c - Release v1.26.1 (#2293)
2024-10-24 - 93e30d7 - Avoid SyncOperationTimeoutTest spamming the test server (#2292)
2024-10-24 - b8c4b7b - Fix proto decoding in a Nexus Operation (#2281)
2024-10-25 - 2ded985 - Bump Java edge dependency version to 21 (#2296)
2024-10-25 - 6efbde3 - Update gradle 7.6.1 -> 8.10.2 (#2294)
2024-10-29 - 0b192d3 - Fix workflow implementation in springboot failing if no default constructor is present (#2300)
2024-10-30 - c96f8d6 - Add workflow metadata query (#2301)
2024-10-31 - 37081cc - Fix jacoco coverage (#2304)
2024-10-31 - b45e40d - Remove feature branch (#2303)
2024-11-03 - f6bf576 - Add support for virtual workflow threads (#2297)
2024-11-04 - c8a27ce - Add activity summary (#2306)
2024-11-12 - 24990db - Ad support for local activity metadata (#2309)
2024-11-12 - 83f47ef - Make sure workflow options from proxy call are propagated (#2310)
2024-11-12 - b53f304 - Expose fromWorkflowStub (#2311)
2024-11-13 - 02ff5cd - Add timeout to canRunWithResourceBasedTuner (#2313)
2024-11-14 - 4cee4e0 - Validate with generic parameter types for workflow init (#2318)
2024-11-14 - 7ab0f6c - Refactor workflow init validation (#2316)
2024-11-15 - 2a68883 - Generate update ID at call time if not set (#2319)
2024-11-22 - 16b0bb9 - Disable eager activities if task queue rate limits is set (#2325)
2024-11-22 - 1d86a57 - Support toString on workflow proxy types (#2315)
2024-11-22 - c6f0b58 - Do runtime check to ensure update validator has the same parameters as the update it validates (#2323)
2024-11-23 - 74022f1 - Add getResult to WorkflowUpdateHandle (#2324)
2024-11-25 - a2dd369 - Add high-level workflow describe (#2326)
2024-11-26 - 89021d0 - Add type safe API to execute an async update workflow request (#2320)
2024-12-01 - fcc0343 - Fix CI after GHA's drop of node16 actions (#2338)
2024-12-02 - 5212a34 - Skip flaky test (#2334)
2024-12-02 - 7245bf8 - Require workflow ID to be set for Nexus (#2330)
2024-12-02 - e3ef9b4 - Standardized update failure exception (#2339)
2024-12-03 - 8782de3 - Make nexus header check case-insensitive (#2335)
2024-12-03 - cbcf26c - Fix unbalanced locks in test server for Nexus (#2341)
2024-12-04 - c7fcf12 - Make headers in ExecuteNexusOperationInput case insensitive (#2342)
2024-12-06 - 30f391f - Add Nexus Worker interceptor (#2278)
2024-12-06 - 7073375 - Add operation Id to callback headers (#2336)
2024-12-06 - 9ac1af3 - New Update-with-Start API (#2337)