Slot Auto-Tuning (Preview)

  • Introduction of WorkerTuner: This new class consolidates worker tuning options by wrapping the previously introduced SlotSupplier classes. You can now pass the WorkerTuner to the WorkerOptions for streamlined worker tuning.

    • ResourceBasedTuner and ResourceBasedSlotSupplier: These classes enable tuning of worker slot counts based on available memory and CPU resources. Set your memory/CPU targets, and the worker will automatically try to reach those levels.

    • CompositeTuner: This feature allows combining different SlotSuppliers to implement a custom WorkerTuner.

We encourage you to try the resource-based tuning and share your feedback on the community Slack. For optimal results, instantiate and pass a ResourceBasedTuner to WorkerOptions. Ensure that your worker is the primary resource-consuming application on the host, and set thresholds to a reasonable value like 0.8. Make sure your JVM -Xmx value is set appropriately.

Note: Custom Slot Supplier remains experimental and is not recommended for production use.

Workflow Update (Preview)

This release includes breaking changes to the Workflow Update client API:

  • temporal.client.UpdateOptions.setWaitPolicy has been renamed 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 and respects the specified stage. Previously, startUpdate might have returned a handle before the desired WaitForStage was reached.

Spring Boot Integration (Preview)

As we move closer to General Availability (GA) for Spring Boot Integration, we've renamed our Spring Boot packages to remove the alpha designation:

  • temporal-spring-boot-starter-alpha -> temporal-spring-boot-starter

  • temporal-spring-boot-autoconfigure-alpha -> temporal-spring-boot-autoconfigure

User Impact: Users who leverage the Spring Boot dependencies and upgrade to the latest version of the Java SDK will need to manually update the dependency names.