Skip to content

Java 1.2 documentation - #633

Merged
devhawk merged 2 commits into
mainfrom
java-1.2
Oct 1, 2026
Merged

devhawk merged 2 commits into
mainfrom
java-1.2

Conversation

@devhawk

@devhawk devhawk commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

Documentation for DBOS Transact Java 1.2, which is already published to Maven Central. The dependency snippets pin 1.2.0.

Upgrade guide

New Upgrading to v1.2 section in java/upgrading.md:

  • Upgrade to 1.1 first.
    • Covers which releases can share a fleet.
    • Covers migrations 113–114. The minimum schema version is still 111.
  • Changes that may require action:
    • Payload columns: workflow inputs and outputs have moved to workflow_input / workflow_output, and the workflow_status payload columns are NULL on new rows.
    • Debouncer: the debouncer now stores a DELAYED workflow, and a leftover 1.1 debouncer workflow is taken over.
    • Child workflows: a child inherits its parent's deadline, not its timeout. The section gives the precedence order and what follows from it.
    • Exports: a 1.2 export imports correctly only into 1.1.1 or later.
    • Public records: some gain new components.
    • Clock: workflow and queue timestamps now come from the database clock.
    • Class-less enqueue: a workflow enqueued without a class name now fails with DBOSWorkflowFunctionNotFoundException.
  • Deprecations table: covers the old QueueOptions builders, and withDeadline on StartWorkflowOptions, EnqueueOptions and WorkflowOptions.
  • 1.1 section fixes: "removed in 2.0" now reads "removed in a future release". Replacements that 1.2 itself deprecates now name the 1.2 form. The 1.1 code examples keep the 1.1 API, because new QueueOptions() doesn't exist in 1.1.

Reference and tutorials

  • Queues (java#589):
    • Every example uses new QueueOptions().withX(...).
    • The QueueOptions reference lists the new builders.
    • It explains withRateLimitMax / withRateLimitPeriod for changing half of a stored limit, and the (Integer) null idiom for clearing a limit.
    • It lists the deprecated forms.
    • prompting.md tells agents not to generate the deprecated forms.
  • Timeouts (java#587):
    • A child inherits its parent's deadline, even while it waits in a queue.
    • The precedence order: call options, then an enclosing WorkflowOptions block, then the parent's deadline.
    • Timeout.none() and Timeout.inherit() are described as they now behave.
    • withDeadline is marked deprecated, and the queue tutorial's deadlines section carries a deprecation note.
  • Debouncer (java#594):
    • Debouncer.withTimeout, and validation when a setter is called.
    • The internal queue is used when no queue is set, and a partitioned queue can't be used.
    • withDeduplicationId is ignored.
    • How a debounce is stored, and when its key is released.
  • Workflow listing (java#593, Document Python 2.28 and TS 4.24 #594): ListWorkflowsInput.withIsFork, and WorkflowStatus.isDebounced / debounceDeadline.
  • Version pins: 1.1.0 → 1.2.0. The deprecation notes on the event_dispatch_kv plugin API no longer mention 2.0.

Verification

  • Every API name, signature, default and behavior claim was checked against the java 1.2.0 tag, and a review pass fixed the debouncer and timeout wording (second commit).
  • Every link and anchor added by this PR resolves.
  • The full Docusaurus build was not run locally.

🤖 Generated with Claude Code

- Upgrade guide: new "Upgrading to v1.2" section covering the 1.1
  waypoint, migrations 113-114, payloads moving to workflow_input /
  workflow_output, the debouncer's DELAYED-workflow design and 1.1
  takeover, child workflows inheriting the parent's deadline, export
  compatibility, new record components, the database clock, and a
  deprecations table.
- QueueOptions: every example uses new QueueOptions() and the plain-value
  with... builders; the reference documents withRateLimitMax/Period, the
  (Integer) null clearing idiom, and the deprecated set/and/Field forms.
- Timeouts: children inherit the parent's deadline, the precedence rules,
  and withDeadline marked deprecated on StartWorkflowOptions,
  EnqueueOptions and WorkflowOptions.
- Debouncer: Debouncer.withTimeout, setter-time validation, internal
  queue default, withDeduplicationId ignored, how a debounce is stored.
- ListWorkflowsInput.withIsFork; WorkflowStatus.isDebounced and
  debounceDeadline.
- Version pins 1.1.0 -> 1.2.0; deprecations now say "a future release"
  instead of 2.0.
- Debouncer: the key is released when the workflow leaves DELAYED, not
  when it starts; later calls reset the start to one period after the
  call; a debouncer can't use a partitioned queue.
- Deadline migration: Duration.between throws for a deadline that has
  passed; drop the DBOSContext.getTimeout() mention.
- dbos.enqueueWorkflow: an enclosing WorkflowOptions bound applies
  before the caller's deadline.
@devhawk
devhawk requested review from kraftp, maxdml and qianl15 October 1, 2026 18:49
@devhawk
devhawk merged commit 6ffca1d into main Oct 1, 2026
1 check passed
@devhawk
devhawk deleted the java-1.2 branch October 1, 2026 19:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants