v1.29.0
Highlights
Workflow Update-With-Start (Private Preview)
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 add 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 create a Update with start request users call client.NewUpdateWithStartWorkflowOperation
and pass it to WorkflowOptions.WithStartOperation
.
Slot auto tuning (Private Preview)
-
Added
WorkerOptions.Tuner
which is aWorkerTuner
composed ofSlotSupplier
s. These interfaces can be used to customize how the worker decides to make slots available for Workflow and Activity Tasks. Some default slot suppliers are included: -
ResourceBasedSlotSupplier
can be used to tune the workers slot count based on available memory and cpu resources. Make a ready-to-goWorkerTuner
by usingNewResourceBasedTuner
. You can set a memory/cpu target and the worker will automatically try to reach those target usage levels. -
FixedSizeSlotSupplier
always hands out slots until an upper bound -
CompositeTuner
can be used to combine different kinds ofSlotSuppliers
to implementWorkerTuner
.
Please give the resource based tuning a try and let us know how it works for you (feedback on community slack is welcome)! It'll work best if the worker is the only thing on your host using significant resources. Try setting the thresholds to a reasonable value like 0.8
Note: Resource based tuning and custom Slot Supplier implementations are currently considered experimental.
User Metadata (Public Preview)
Note: This feature requires a server version 1.25+
This release add support for user metadata inside Workflows. This lets users set custom metadata on Workflow executions and certain APIs inside workflow that will be visible on the UI
Currently the Go SDK support:
- Fixed "summary" and "details" on workflow start
- Details on timer names through
workflow.NewTimerWithOptions
- Details on signals, updates and query handlers through
workflow.SignalChannelOptions,
workflow.QueryHandlerOptions
andworkflow.UpdateHandlerOptions
See also: temporalio/features#486
What's Changed
2024-07-23 - 9c40461 - Add utility to get metrics handler for a Nexus operation (#1559)
2024-07-25 - bcc623d - Add support for managing schedule search attributes when when updating a schedule (#1562)
2024-07-26 - 1f0296c - Support for WorkflowIdConflictPolicy (#1563)
2024-07-29 - 2baa60e - Test duplicate rejected updates (#1569)
2024-07-29 - 6bb8f99 - Add rule code to warning (#1572)
2024-07-29 - dd28ced - Protect against legacy queries when state is destroyed (#1568)
2024-08-05 - 9b9201f - Use correct branch when not a pull request (#1578)
2024-08-05 - c5b519e - Build omes worker image w/ pending changes (#1577)
2024-08-06 - a1d05a6 - WorkerTuner & Resource based autotuning (#1546)
2024-08-06 - c2ce2e6 - Do not warn on unfinished handlers if workflow failed (#1581)
2024-08-08 - 2927574 - Switch omes to post-merge (#1583)
2024-08-09 - 0b7928d - Fix UpsertTypedSearchAttributes docs typo (#1585)
2024-08-14 - bb42a8b - Fix Go SDK CI (#1590)
2024-08-14 - c3ac511 - Improve docs and tests for HandlerUnfinishedPolicy (#1589)
2024-08-15 - 2a02c48 - Removing wording saying a signal will ignore start delay (#1592)
2024-08-15 - b5db2b7 - Add TaskQueueStats to DescribeTaskQueueEnhanced (#1553)
2024-08-20 - edc3c6c - Allow workflow interceptors to add nexus headers (#1604)
2024-08-21 - 1fe6141 - Support updates in tracing interceptor (#1595)
2024-08-21 - a31f86d - Address flaky tests (#1607)
2024-08-22 - 9bcc1a9 - Minor docstring grammar updates in activity.go (#1608)
2024-08-23 - 94f2100 - Minor correction to TQ stats docs (#1606)
2024-08-28 - 5364a47 - Handle Nexus links (#1605)
2024-08-29 - e85a098 - Update-with-Start operation (#1579)
2024-08-30 - 1b6220d - Mark Nexus link converter functions as experimental (#1615)
2024-08-30 - f47e644 - Experimental user metadata and workflow metadata query support (#1597)
2024-09-03 - 2af8c72 - Narrow scope of used slots lock for tracking slot supplier (#1617)
2024-09-03 - 52ea97f - Mark NewTimerWithOptions as Experimental (#1619)
2024-09-03 - eb41d13 - Expose QueryRejectedError (#1616)
2024-07-23 - 9c40461 - Add utility to get metrics handler for a Nexus operation (#1559)
2024-07-25 - bcc623d - Add support for managing schedule search attributes when when updating a schedule (#1562)
2024-07-26 - 1f0296c - Support for WorkflowIdConflictPolicy (#1563)
2024-07-29 - 2baa60e - Test duplicate rejected updates (#1569)
2024-07-29 - 6bb8f99 - Add rule code to warning (#1572)
2024-07-29 - dd28ced - Protect against legacy queries when state is destroyed (#1568)
2024-08-05 - 9b9201f - Use correct branch when not a pull request (#1578)
2024-08-05 - c5b519e - Build omes worker image w/ pending changes (#1577)
2024-08-06 - a1d05a6 - WorkerTuner & Resource based autotuning (#1546)
2024-08-06 - c2ce2e6 - Do not warn on unfinished handlers if workflow failed (#1581)
2024-08-08 - 2927574 - Switch omes to post-merge (#1583)
2024-08-09 - 0b7928d - Fix UpsertTypedSearchAttributes docs typo (#1585)
2024-08-14 - bb42a8b - Fix Go SDK CI (#1590)
2024-08-14 - c3ac511 - Improve docs and tests for HandlerUnfinishedPolicy (#1589)
2024-08-15 - 2a02c48 - Removing wording saying a signal will ignore start delay (#1592)
2024-08-15 - b5db2b7 - Add TaskQueueStats to DescribeTaskQueueEnhanced (#1553)
2024-08-20 - edc3c6c - Allow workflow interceptors to add nexus headers (#1604)
2024-08-21 - 1fe6141 - Support updates in tracing interceptor (#1595)
2024-08-21 - a31f86d - Address flaky tests (#1607)
2024-08-22 - 9bcc1a9 - Minor docstring grammar updates in activity.go (#1608)
2024-08-23 - 94f2100 - Minor correction to TQ stats docs (#1606)
2024-08-28 - 5364a47 - Handle Nexus links (#1605)
2024-08-29 - e85a098 - Update-with-Start operation (#1579)
2024-08-30 - 1b6220d - Mark Nexus link converter functions as experimental (#1615)
2024-08-30 - f47e644 - Experimental user metadata and workflow metadata query support (#1597)
2024-09-03 - 2af8c72 - Narrow scope of used slots lock for tracking slot supplier (#1617)
2024-09-03 - 52ea97f - Mark NewTimerWithOptions as Experimental (#1619)
2024-09-03 - eb41d13 - Expose QueryRejectedError (#1616)
2024-09-05 - 6f8719a - Improve active task queue definition (#1621)