Skip to main content
This tutorial uses the 0.14.0 executable DSL and deterministic Java Steps. It makes no provider calls and needs no API key. 0.14.0 is available on Maven Central. Durable loops, waits/timers and committed-event Journal projection are unavailable in this milestone.

Define business contracts

Use concrete classes implementing Step<I,O>. Pass services and settings through their constructors. Return business values from execute; use StepContext only for execution metadata.
Fetch declares Step<Request, Diff> and WriteReport declares Step<ReportInput, Report>. The next Step’s input record states which typed earlier values it needs. The complete implementations and runtime wiring are in Sequential.java and ExampleRunner.java.

Dependencies and execution

Use Java 21 and io.github.markpollack:workflow-batch:0.14.0. Native Verdict routing also needs io.github.markpollack:agent-judge-json-jackson2:0.18.0. Both resolve from Maven Central. Follow the six-lesson tutorial to compile and execute the example. Separate definition, Step registration and runtime configuration as shown there. No Spring container or provider is needed.

Supported composition

Sequences, reusable nested workflows, exhaustive enum decisions, native Verdict routing, static parallel groups and bounded runtime fan-out compose through the same compiler and durable runtime. end() closes the innermost lexical block; explicit terminals declare execution completion. Durable loops and timers are deferred. There is no supported durable Temporal or interchangeable-runner contract for this milestone. See Durability before using a saved store.