跳到主要内容

Change log

查看 Markdown

This page lists user-visible changes to the Java SDK, newest first; each section covers the changes since the previous release of this component.

1.45​

Released 2026-11-11 as sdk-java/v1.45.0.

Added​

  • WorkerOptions.Builder.flowDefinitionPaths and WorkerOptions.Builder.flowDefinitions make a Worker upload Flow Definition Graph documents when it starts, so Dex Web can draw the Flow types it registers. FlowDefinitionDocument holds an in-memory document. Upload failures, including a Server without Flow definition storage, are logged as warnings and never stop the Worker. Reference.
  • Client.uploadFlowDefinitions uploads documents from a deploy or CI script and returns a FlowDefinitionUploadResult with a FlowDefinitionUploadOutcome for each document. Reference.

Breaking​

  • A Step whose Step type contains - can no longer start SubFlows. The child Flow ID joins the parent Flow ID, Step execution ID, and SubFlow index with -, so a dash made two parents share one child. When such a Step's waitFor returns a SubFlow.run condition, the server rejects the result as an invalid Worker response and fails the attempt without retry; with the default failure policy, the Flow fails. Steps that start no SubFlows are unaffected. To migrate, rename the Step type, for example by overriding getStepType; the rename changes the child Flow IDs of new SubFlow starts. Reference.

Fixed​

  • The Join documentation no longer recommends reporting a result for a cancelled branch from the cancelling RPC, which could count that branch twice. A cancelled branch never reports, and no other code can safely report for it. Reference.

1.44​

Released 2026-11-10 as sdk-java/v1.44.0.

Added​

  • Join and JoinRound synchronize parallel branches of one Flow. Join.fork starts a round from a split Step and derives the round key and branch count; Join.forkWithRoundKey takes an application key, for example in an RPC. Branches report with endBranch or reportBranchResult. The join Step waits with forAllBranches, forFirstBranch, or forBranches, and the next round resets with forRemainingBranches. A Join is stored as a ChannelMap with the same name; Join.getChannelMap returns it for reading a round's pending results, never for publishing. Reference.
  • StepDecision.goToMany(List) and RPCResult.of(output, List) accept a list of movements, such as the result of Join.fork, and behave like the varargs forms. A call with a literal null argument is now ambiguous and no longer compiles; it always threw at run time. Reference.

1.43​

Released 2026-11-10 as sdk-java/v1.43.0.

Breaking​

  • Removed Client.triggerContinueAsNew, FlowStatus.CONTINUED_AS_NEW, FlowConfig.Builder.continueAsNewThreshold, FlowConfig.Builder.continueAsNewPageSizeBytes, SearchFlowsOptions, and the four-argument Client.searchFlows overload. Use the three-argument search method. Reference.
  • Removed WaitForStepCompletionOptions.Builder.internalHandlerTimeout and WaitForAttributeOptions.Builder.internalHandlerTimeout. Request IDs remain accepted but the server does not read them for these waits. Reference.
  • Generated bindings rename FlowExecutionID to FlowRunID and getFlowExecutionId to getFlowRunId. ProtoJSON uses flowRunId. Reference.

1.41​

Released 2026-11-09 as sdk-java/v1.41.0. No API or behavior changes.

Changed​

  • The SDK README now says that only a completed Flow result carries outputs; an unsuccessful result has none.

1.40​

Released 2026-11-09 as sdk-java/v1.40.0.

Added​

  • FlowConfig.Builder.offloadHistory(boolean) chooses whether a run offloads its history to object storage. Omitting it means true. Pass false for many short runs that close soon. Set it at start through StartFlowOptions.Builder.configOverride or in SubFlowOptions. A SubFlow otherwise inherits its parent's value, and Client.updateFlowConfig rejects it with INVALID_ARGUMENT. It requires server-zd 0.1.23 or later. Reference.

Changed​

  • FlowConfig.Builder.deleteExpiredHistoryObjects(boolean) is deprecated. It has no effect, and the SDK no longer sends it. Existing code that sets it still compiles.

1.39​

Released 2026-11-09 as sdk-java/v1.39.0.

Added​

  • FlowConfig.Builder.deleteExpiredHistoryObjects(boolean) controls expired history object deletion at start, on update, and for SubFlows. It requires history offload and server-zd 0.1.22 or later.

Changed​

  • A LoadBlobs request names at most 1,000 entries. The SDK batches larger requests and keeps the input order.

1.38​

Released 2026-11-07 as sdk-java/v1.38.0.

Added​

  • FlowConfig.Builder.historyWindowEvents sets about how many of the newest history events a run keeps for history reads and Time Travel. Set it at start, change it with Client.updateFlowConfig, or override it for a SubFlow. Omitting it uses the server's history.windowEvents setting. Dex rejects a value that is not positive or exceeds history.maxWindowEvents with INVALID_ARGUMENT. It requires server-zd 0.1.21 or later. Reference.

1.37​

Released 2026-11-06 as sdk-java/v1.37.0. Reference: 1.37.x.

Added​

  • FlowServiceTlsOptions and flowServiceTls on Client and Worker option builders enable verified TLS, with optional extra root CAs and a server-name override. Omitting the option keeps plaintext connections. API reference.

1.35​

Released 2026-11-06 as sdk-java/v1.35.0. Reference: 1.35.x.

Breaking​

  • Workers and the Client’s first call now require server-zd 0.1.17 or later (protocol version 4). Upgrade all server processes before upgrading the SDK. Reference.
  • Worker startup fails when maxConcurrentTasks exceeds matching.maxConcurrentTasksCap (256 by default). Lower the Worker setting or raise the server cap and matching.maxStreams first. Reference.
  • RetryPolicy.Builder.totalDuration now starts at the first hand-out and only gates scheduling another retry. Set method timeouts to bound running attempts. API reference.
  • A Step with no available or supporting Worker waits durably without consuming a retry. Set a Flow timeout to bound that wait. Reference.
  • A Step attempt interrupted after its hand-out was committed fails with NOT_COMPLETED and consumes a retry. Review retry policies and side effects before upgrading. Reference.

Added​

  • RecoveryErrorInfo.getAttemptProgress() distinguishes a failed Step method that never started from one that may have run. API reference.

Changed​

  • Workers open one execution stream per slot; reservedRpcTasks selects RPC-only slots. By default, a Worker with at least two slots reserves one for RPCs. Reference.
  • stop drains running handlers and returns tasks that did not start without consuming a retry. Reference.

Deprecated​

  • idleStreamsPerQueue is accepted but ignored, and getPullReservedRpcDeclines() always reports zero. Use execution-slot capacity and queue metrics instead. Reference.

1.32​

Released 2026-11-01 as sdk-java/v1.32.0. Reference: 1.32.x.

Added​

  • Generated protocol bindings include AdminService, with DescribeActiveNode and StepDownActiveNode for inspecting and stepping down the active server process. Release notes.

1.31​

Released 2026-10-31 as sdk-java/v1.31.0. Reference: 1.31.x.

Added​

  • Client.getAttributes reads committed Attributes and AttributeMap instances in one request without a Worker. AttributeMap.instance selects an instance, and AttributeValues.get returns an Optional value. API reference.

1.30​

Released 2026-10-31 as sdk-java/v1.30.0. Reference: 1.30.x.

Added​

  • Generated protocol bindings add ERROR_SUB_STATUS_ATTRIBUTE_INDEX_CAPACITY_EXCEEDED and ERROR_SUB_STATUS_INDEXED_KEYWORD_TOO_LONG for Attribute index admission errors. Release notes.

Older releases: GitHub releases.