Added WorkerTuner - this wraps the previously added SlotSupplier classes to bring worker tuning options together under one class passed to the WorkerOptions
* Added ResourceBasedTuner and ResourceBasedSlotSupplier - these classes can be used to tune the workers slot count based on available memory and cpu resources.
Set a memory/cpu target and the worker will automatically try to reach those target usage levels.
* Added CompositeTuner - this allows you to combine different kinds of SlotSuppliers to implement WorkerTuner.
Please give the resource based tuning a try and let us know how it works for you (feedback on community slack is welcome)!
The easiest thing to do is instantiate and pass a ResourceBasedTuner to WorkerOptions.
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, and make sure that your JVM -Xmx value is set appropriately.
Note: Custom Slot Supplier is currently considered experimental and not intended for production use.
Breaking Changes
Workflow Update (Preview)
This release includes some breaking changes to the Workflow Update client API.
temporal.client.UpdateOptions.setWaitPolicy has been changed to temporal.client.UpdateOptions.setWaitForStage
WaitForStage is now a required option in temporal.client.UpdateOptions and no longer defaults to Accepted
io.temporal.client.WorkflowStub.startUpdate now requires a WorkflowUpdateStage.
io.temporal.client.WorkflowStub.startUpdate now respects the WorkflowUpdateStage.
Previously startUpdate may have returned a handle before the desired WaitForStage was reached.
SpringBoot Integration (Preview)
As part of preparation for Spring Boot Integration GA we have renamed our Spring Boot packages to remove the alpha tag:
* temporal-spring-boot-starter-alpha -> temporal-spring-boot-starter
* temporal-spring-boot-autoconfigure-alpha -> temporal-spring-boot-autoconfigure
Users should update their package names when upgrading the Java SDK.
Stay tuned for future news about SpringBoot integration GA.
Changeset
2024-04-02 - e603fd85 - Fix environment variables in CI github action (#2024)
2024-04-04 - 26a85957 - SpringBoot - add workflow and activity metadata to RegisteredInfo (#1995)
2024-04-08 - 35689706 - Update github actions (#2027)
2024-04-08 - 779d90c4 - Make StickyQueueBalancer synchronized (#2025)
2024-04-10 - 920a3617 - Add note on using snapshot releases (#2032)
2024-04-10 - d2a06fc6 - Slot supplier interface & fixed-size implementation (#2014)
2024-04-15 - 81cc6e03 - Update proto API to 1.32.0 (#2039)
2024-04-15 - c6cceca2 - Fix recursion in TracingWorkerInterceptor (#2040)
2024-04-17 - ed211fa6 - Fix exception in GrpcRetryer. (#2021)
... (truncated)
Commits
659fee5 Switch checkout in prepare-release.yml to v3 (#2126)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps io.temporal:temporal-sdk from 1.23.1 to 1.24.0.
Release notes
Sourced from io.temporal:temporal-sdk's releases.
... (truncated)
Commits
659fee5
Switch checkout in prepare-release.yml to v3 (#2126)374c7fb
Release v1.24.0 (#2125)43a4aa0
Remove Spring Boot alpha tag (#2115)8872e33
Update dependencies to address some CVE scans (#2123)8a2d5cd
Resource based tuner (#2110)69769cb
Fix empty-string fields on CaN not working (#2120)ddda99b
Fix ConcurrentModificationException in LocalActivityMeteringHelper (#2108)6da11b9
Add integration test for reset with update (#2104)f0a30a6
Fix flake in resetWorkflowIdFromWorkflowTaskTest (#2105)4f781b3
Allow SDK to handle speculative workflow task with command events (#2099)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show