Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
111 commits
Select commit Hold shift + click to select a range
d4369a3
start java
kraftp Oct 2, 2025
430e737
lifecycle
kraftp Oct 2, 2025
5a5ae12
file
kraftp Oct 2, 2025
154e2f6
update
kraftp Oct 2, 2025
edde7c2
more
kraftp Oct 2, 2025
ed5cce7
more
kraftp Oct 2, 2025
ad1b8c8
update
kraftp Oct 2, 2025
41a6903
programming guide
kraftp Oct 3, 2025
10c98d5
more
kraftp Oct 3, 2025
898d9a9
nit
kraftp Oct 3, 2025
29057a8
update
kraftp Oct 3, 2025
11e384f
queue
kraftp Oct 3, 2025
98ce4cc
config
kraftp Oct 3, 2025
302ba5b
formatting
kraftp Oct 3, 2025
ab1d95f
formatting
kraftp Oct 3, 2025
1b479ed
example syntax
kraftp Oct 3, 2025
d22e6a5
example
kraftp Oct 3, 2025
df8e10c
nit
kraftp Oct 3, 2025
d292a79
methods
kraftp Oct 3, 2025
3c3cf79
handle
kraftp Oct 3, 2025
1a1e611
Merge branch 'main' into java
kraftp Oct 6, 2025
dccae61
workflow status
kraftp Oct 6, 2025
542071f
lsit workflows
kraftp Oct 6, 2025
5a9ca85
managemetn
kraftp Oct 6, 2025
9326b22
managemetn
kraftp Oct 6, 2025
6255a3a
scheduled
kraftp Oct 6, 2025
67bd0ae
queue
kraftp Oct 6, 2025
0c33a8c
client
kraftp Oct 6, 2025
21e8328
client
kraftp Oct 6, 2025
7e2355d
tutorials
kraftp Oct 6, 2025
d3b5c3b
workflow tutorial
kraftp Oct 6, 2025
9437c19
nit
kraftp Oct 6, 2025
5239e49
steps
kraftp Oct 6, 2025
e9ec0fe
queues
kraftp Oct 6, 2025
0043222
Merge branch 'main' into java
kraftp Oct 7, 2025
9e8bbd9
workflow comm
kraftp Oct 7, 2025
e128c7c
workflow management
kraftp Oct 7, 2025
8940658
integration
kraftp Oct 7, 2025
2044261
example
kraftp Oct 7, 2025
0907d2e
update
kraftp Oct 7, 2025
4a46af3
cleanup
kraftp Oct 7, 2025
23a844c
cleanup
kraftp Oct 7, 2025
0fdbb48
update
kraftp Oct 7, 2025
509f648
nit
kraftp Oct 7, 2025
e4bff80
nit
kraftp Oct 7, 2025
88ed8d6
build
kraftp Oct 7, 2025
f0945c8
nit
kraftp Oct 7, 2025
e46b543
Merge branch 'main' into java
kraftp Oct 13, 2025
d71154e
simplify
kraftp Oct 13, 2025
fda6d59
nit
kraftp Oct 13, 2025
b0ed321
integrating
kraftp Oct 13, 2025
922171b
lifecycle
kraftp Oct 13, 2025
bb36bb1
Merge branch 'main' into java
kraftp Oct 13, 2025
f26ad8a
workflows steps
kraftp Oct 13, 2025
775b32b
nits
kraftp Oct 13, 2025
afbce07
new
kraftp Oct 13, 2025
a59526a
update
kraftp Oct 13, 2025
bb5554b
update
kraftp Oct 13, 2025
6773787
nit
kraftp Oct 13, 2025
6600cd6
workflow
kraftp Oct 13, 2025
8ec6f6a
step
kraftp Oct 13, 2025
a458843
update
kraftp Oct 13, 2025
e5313fc
update
kraftp Oct 13, 2025
5a5a5f9
nits
kraftp Oct 13, 2025
a89e99e
nits
kraftp Oct 13, 2025
99aca26
nit
kraftp Oct 13, 2025
efbace9
nit
kraftp Oct 13, 2025
8552d01
nit"
kraftp Oct 13, 2025
4218e31
nit
kraftp Oct 13, 2025
174a9ed
nit
kraftp Oct 13, 2025
425eb56
nit
kraftp Oct 13, 2025
2c42815
nit
kraftp Oct 13, 2025
fbc72e0
nit
kraftp Oct 13, 2025
a8e281a
nit
kraftp Oct 13, 2025
7169297
Fix broken anchors
chuck-dbos Oct 14, 2025
45db0bd
Usually inferred
chuck-dbos Oct 14, 2025
6a825a0
Simplifications
chuck-dbos Oct 14, 2025
3a83b38
Duration
chuck-dbos Oct 14, 2025
b6a7b66
Corrections/clarifications
chuck-dbos Oct 14, 2025
4caa92b
Corrections for Duration; clarify
chuck-dbos Oct 14, 2025
b522a06
Merge remote-tracking branch 'origin/main' into java
chuck-dbos Oct 23, 2025
0005a44
Java doc updates
chuck-dbos Oct 24, 2025
6d9aa42
getWorkflowId->workflowId
chuck-dbos Oct 24, 2025
cc4adf3
Add Scheduled tutorial
chuck-dbos Oct 27, 2025
3c85b74
Merge branch 'main' into java
kraftp Oct 27, 2025
0fdd9a0
update
kraftp Oct 27, 2025
59b5a2f
update
kraftp Oct 27, 2025
bd3532b
nit
kraftp Oct 27, 2025
c517ba7
nit
kraftp Oct 27, 2025
1b1a37f
fix
kraftp Oct 27, 2025
deff94d
fix
kraftp Oct 27, 2025
b2aaeee
updates
kraftp Oct 27, 2025
25a0400
nit
kraftp Oct 27, 2025
74ac5de
nits
kraftp Oct 27, 2025
e725262
update
kraftp Oct 27, 2025
3c5c5f9
updates
kraftp Oct 27, 2025
6054de1
cleanup
kraftp Oct 27, 2025
f64e42c
cleanup
kraftp Oct 27, 2025
f8a6ef4
cleanup
kraftp Oct 27, 2025
65e1ed0
cleanup
kraftp Oct 27, 2025
4f7eaef
java quickstart
kraftp Oct 27, 2025
5e6b6d0
img
kraftp Oct 27, 2025
2f77e50
widget store java
kraftp Oct 27, 2025
8b48dad
Allow language to be set
chuck-dbos Oct 28, 2025
8aea10c
All link to each other
chuck-dbos Oct 28, 2025
7e5e11d
Java logo
chuck-dbos Oct 28, 2025
e05fad8
Fix up the mult-language index cards
chuck-dbos Oct 28, 2025
dd82f89
Small touchups based on trying it
chuck-dbos Oct 29, 2025
02e1225
OAOO send
chuck-dbos Oct 29, 2025
67074a9
udpate
kraftp Oct 29, 2025
7990b82
update
kraftp Oct 29, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
formatting
  • Loading branch information
kraftp committed Oct 3, 2025
commit 302ba5baac83e85ecdf472e985608f6a26cbcef1
63 changes: 11 additions & 52 deletions docs/java/reference/lifecycle.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public record DBOSConfig(
boolean adminServer,
int adminServerPort,
String conductorKey,
String appVersion,
String appVersion
)
```

Expand All @@ -38,66 +38,25 @@ new DBOSConfig.Builder()

**Methods:**

```java
Builder appName(String appName)
```

Your application's name. Required.

```java
Builder databaseUrl(String databaseUrl)
```

The JDBC URL for your system database. Required.
A valid JDBC URL is of the form `jdbc:postgresql://host:port/database`

```java
Builder dbUser(String dbUser)
```

Your Postgres username or role. Required.

```java
Builder dbPassword(String dbPassword)
```

The password for your Postgres user or role. Required.
- **`appName(String appName)`** - Your application's name. Required.

```java
Builder maximumPoolSize(int maximumPoolSize)
```
- **`databaseUrl(String databaseUrl)`** - The JDBC URL for your system database. Required. A valid JDBC URL is of the form `jdbc:postgresql://host:port/database`

The maximum size for the system database connection pool created by DBOS.
- **`dbUser(String dbUser)`** - Your Postgres username or role. Required.

```java
Builder connectionTimeout(int connectionTimeout)
```
- **`dbPassword(String dbPassword)`** - The password for your Postgres user or role. Required.

The connection timeout for the system database connection created by DBOS.
- **`maximumPoolSize(int maximumPoolSize)`** - The maximum size for the system database connection pool created by DBOS.

```java
Builder runAdminServer()
```
- **`connectionTimeout(int connectionTimeout)`** - The connection timeout for the system database connection created by DBOS.

Whether to run an [HTTP admin server](../../production/self-hosting/admin-api.md) for workflow management operations. Defaults to true.
- **`runAdminServer()`** - Whether to run an [HTTP admin server](../../production/self-hosting/admin-api.md) for workflow management operations. Defaults to true.

```java
Builder adminServerPort(int port)
```
- **`adminServerPort(int port)`** - The port on which the admin server runs. Defaults to 3001.

The port on which the admin server runs. Defaults to 3001.

```java
Builder conductorKey(String key)
```

An API key for [DBOS Conductor](../../production/self-hosting/conductor.md). If provided, application is connected to Conductor. API keys can be created from the [DBOS console](https://console.dbos.dev).

```java
Builder appVersion(String appVersion)
```
- **`conductorKey(String key)`** - An API key for [DBOS Conductor](../../production/self-hosting/conductor.md). If provided, application is connected to Conductor. API keys can be created from the [DBOS console](https://console.dbos.dev).

The code version for this application and its workflows. Workflow versioning is documented here.
- **`appVersion(String appVersion)`** - The code version for this application and its workflows. Workflow versioning is documented here.

### DBOS.launch

Expand Down
67 changes: 9 additions & 58 deletions docs/java/reference/workflows-steps.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,48 +74,15 @@ new StartWorkflowOptions()

**Methods:**

```java
StartWorkflowOptions withWorkflowId(String workflowId)
```
- **`withWorkflowId(String workflowId)`** - Set the workflow ID of this workflow.

Set the workflow ID of this workflow.
- **`withTimeout(Duration timeout)`** / **`withTimeout(long value, TimeUnit unit)`** - Set a timeout for this workflow. When the timeout expires, the workflow **and all its children** are cancelled. Cancelling a workflow sets its status to `CANCELLED` and preempts its execution at the beginning of its next step.

```java
StartWorkflowOptions withTimeout(Duration timeout)
```
Timeouts are **start-to-completion**: if a workflow is enqueued, the timeout does not begin until the workflow is dequeued and starts execution. Also, timeouts are **durable**: they are stored in the database and persist across restarts, so workflows can have very long timeouts.

```java
StartWorkflowOptions withTimeout(long value, TimeUnit unit)
```

Set a timeout for this workflow.
When the timeout expires, the workflow **and all its children** are cancelled.
Cancelling a workflow sets its status to `CANCELLED` and preempts its execution at the beginning of its next step.
Timeout deadlines are propagated to child workflows by default, so when a workflow's deadline expires all of its child workflows (and their children, and so on) are also cancelled. If you want to detach a child workflow from its parent's timeout, you can start it with `SetWorkflowTimeout(custom_timeout)` to override the propagated timeout. You can use `SetWorkflowTimeout(None)` to start a child workflow with no timeout.

Timeouts are **start-to-completion**: if a workflow is enqueued, the timeout does not begin until the workflow is dequeued and starts execution.
Also, timeouts are **durable**: they are stored in the database and persist across restarts, so workflows can have very long timeouts.

Timeout deadlines are propagated to child workflows by default, so when a workflow's deadline expires all of its child workflows (and their children, and so on) are also cancelled.
If you want to detach a child workflow from its parent's timeout, you can start it with `SetWorkflowTimeout(custom_timeout)` to override the propagated timeout.
You can use `SetWorkflowTimeout(None)` to start a child workflow with no timeout.

```java
StartWorkflowOptions withQueue(Queue queue)
```

```java
StartWorkflowOptions withQueue(Queue queue, String deduplicationId)
```

```java
StartWorkflowOptions withQueue(Queue queue, int priority)
```

```java
StartWorkflowOptions withQueue(Queue queue, String deduplicationId, int priority)
```

TODO: Document these once they're broken up appropriately.
- **`withQueue(Queue queue)`** / **`withQueue(Queue queue, String deduplicationId)`** / **`withQueue(Queue queue, int priority)`** / **`withQueue(Queue queue, String deduplicationId, int priority)`** - TODO: Document these once they're broken up appropriately.


### runStep
Expand Down Expand Up @@ -153,26 +120,10 @@ Provide a name for this step.

**Methods:**

```java
StepOptions withRetriesAllowed(boolean b)
```

Whether to retry the step if it throws an exception. Defaults to false.

```java
StepOptions withMaxAttempts(int n)
```

How many times to retry a step that is throwing exceptions.

```java
StepOptions withIntervalSeconds(double t)
```
- **`withRetriesAllowed(boolean b)`** - Whether to retry the step if it throws an exception. Defaults to false.

How long to wait before the initial retry.
- **`withMaxAttempts(int n)`** - How many times to retry a step that is throwing exceptions.

```java
StepOptions withBackoffRate(double t)
```
- **`withIntervalSeconds(double t)`** - How long to wait before the initial retry.

How much to multiplicatively increase `intervalSeconds` between retries.
- **`withBackoffRate(double t)`** - How much to multiplicatively increase `intervalSeconds` between retries.