Migration Guide: 0.13.x to 0.14.0
Quarkus Flow 0.14.0 internalizes the Serverless Workflow Java Fluent DSL.
The DSL classes previously lived in the SDK (io.serverlessworkflow.impl.expression.func and related packages) and are now part of Quarkus Flow itself under a new io.quarkiverse.flow.dsl namespace.
This is a source-level breaking change: your workflow code will need import updates, but the DSL behavior is identical.
Why the move?
The DSL was experimental in the SDK and tightly coupled to Quarkus Flow’s runtime. Bringing it into the extension gives us:
-
Faster iteration without cross-repo coordination.
-
A clear ownership boundary (DSL lives where it is used).
-
Aligned naming (
FlowDSL,FlowWorkflowBuilder) that signals Quarkus Flow identity.
What changed
| Before (0.13.x) | After (0.14.0) |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Step-by-step migration
1. Update your POM
Remove the explicit SDK experimental dependencies if you declared them directly.
The quarkus-flow extension now bundles everything:
<!-- Remove these if present in your pom.xml -->
<dependency>
<groupId>io.serverlessworkflow</groupId>
<artifactId>serverlessworkflow-experimental-fluent-func</artifactId>
</dependency>
<dependency>
<groupId>io.serverlessworkflow</groupId>
<artifactId>serverlessworkflow-experimental-lambda</artifactId>
</dependency>
<dependency>
<groupId>io.serverlessworkflow</groupId>
<artifactId>serverlessworkflow-experimental-model</artifactId>
</dependency>
2. Update imports
A global find-and-replace handles most cases:
| Find | Replace with |
|---|---|
|
|
|
|
|
|
|
|
| Run the replacements in the order listed — the specific class renames first, then the package-level catch-all. |
For a shell-based approach:
# Rename the two user-facing classes
find src -name '*.java' -exec sed -i '' \
's/FuncDSL/FlowDSL/g; s/FuncWorkflowBuilder/FlowWorkflowBuilder/g' {} +
# Update package imports
find src -name '*.java' -exec sed -i '' \
's/io\.serverlessworkflow\.impl\.expression\.func/io.quarkiverse.flow.dsl/g; \
s/io\.serverlessworkflow\.experimental\.types/io.quarkiverse.flow.dsl.types/g' {} +