v1.27.0
💥 BREAKING CHANGES
Update With Start (Pre-release)
WorkflowClient
WorkflowClient.updateWithStarthas been renamed toWorkflowClient.startUpdateWithStart.- Instead of taking the workflow method, workflow arguments and a
UpdateWithStartWorkflowOperation,WorkflowClient.startUpdateWithStartnow takes the update method, update arguments and aWithStartWorkflowOperation.WithStartWorkflowOperationcontains the workflow method and workflow arguments to be executed together with the update request.
WorkflowStub
WorkflowStub.updateWithStarthas been renamed toWorkflowStub.startUpdateWithStart.WorkflowStub.startUpdateWithStartnow 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
@UpdateValidatorMethodto make sure the type parameters match the linked@UpdateMethod. - The SDK will no longer sometimes throw
WorkflowUpdateExceptionwhen callingWorkflowStub.startUpdateif the update is rejected.WorkflowUpdateExceptionis now consistently throw when getting the result of the update UpdateOptionsBuilderno longer generates a update ID when built. Now a unique UUID is generated when the options are used. This is similar to howWorkflowOptionsand workflow ID work.
Nexus (Private 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.
- Nexus on Temporal is now in Public Preview.
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 (Private 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_metadataquery, 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)