Define business contracts
Use concrete classes implementingStep<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 andio.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.