diff --git a/experimental/lambda-fluent/pom.xml b/experimental/lambda-fluent/pom.xml
new file mode 100644
index 00000000..a537b36c
--- /dev/null
+++ b/experimental/lambda-fluent/pom.xml
@@ -0,0 +1,32 @@
+
+
+ 4.0.0
+
+ io.serverlessworkflow
+ serverlessworkflow-experimental
+ 8.0.0-SNAPSHOT
+
+
+ serverlessworkflow-lambda-fluent
+ Serverless Workflow :: Experimental :: Lambda Fluent
+ pom
+
+
+ 17
+ 17
+ UTF-8
+
+
+
+
+ io.serverlessworkflow
+ serverlessworkflow-fluent-func
+
+
+ io.serverlessworkflow
+ serverlessworkflow-experimental-lambda
+
+
+
\ No newline at end of file
diff --git a/experimental/lambda/pom.xml b/experimental/lambda/pom.xml
index 242917d1..0b57ab0a 100644
--- a/experimental/lambda/pom.xml
+++ b/experimental/lambda/pom.xml
@@ -7,7 +7,7 @@
8.0.0-SNAPSHOT
serverlessworkflow-experimental-lambda
- ServelessWorkflow:: Experimental:: lambda
+ Serverless Workflow :: Experimental :: Lambda
io.serverlessworkflow
@@ -20,6 +20,7 @@
io.serverlessworkflow
serverlessworkflow-fluent-func
+ test
org.junit.jupiter
diff --git a/experimental/pom.xml b/experimental/pom.xml
index 3312207e..c4b61781 100644
--- a/experimental/pom.xml
+++ b/experimental/pom.xml
@@ -7,7 +7,7 @@
serverlessworkflow-experimental
pom
- ServerlessWorkflow:: Experimental
+ Serverless Workflow :: Experimental
@@ -40,5 +40,6 @@
types
lambda
+ lambda-fluent
\ No newline at end of file
diff --git a/experimental/types/pom.xml b/experimental/types/pom.xml
index dea3931d..3165f28d 100644
--- a/experimental/types/pom.xml
+++ b/experimental/types/pom.xml
@@ -6,7 +6,7 @@
8.0.0-SNAPSHOT
serverlessworkflow-experimental-types
- ServelessWorkflow:: Experimental:: Types
+ Serverless Workflow :: Experimental:: Types
io.serverlessworkflow
diff --git a/fluent/README.md b/fluent/README.md
new file mode 100644
index 00000000..6e4d7bb0
--- /dev/null
+++ b/fluent/README.md
@@ -0,0 +1,204 @@
+# CNCF Serverless Workflow SDK Java — Fluent DSL
+
+> A programmatic, type‑safe Java API for building and running Serverless Workflows (and agentic workflows) without writing YAML.
+
+---
+
+## 📦 Modules
+
+| Module | Purpose |
+| -------------- | --------------------------------------------------------------------------------------------- |
+| **spec** | Core DSL implementing the [Serverless Workflow Specification](https://github.com/serverlessworkflow/specification). Purely compliant fluent API. |
+| **func** | Java‑centric “functional” DSL on top of **spec**: adds `Function<>`/`Predicate<>` support, `callFn` for Java method calls, and richer flow controls. |
+| **agentic** | **Experimental** proof‑of‑concept DSL built on **func** for LangChain4j agentic workflows: `agent`, `sequence`, `loop`, `parallel`, etc. |
+
+---
+
+## 🔧 Getting Started
+
+Add the modules you need to your Maven `pom.xml` (replace versions as appropriate):
+
+```xml
+
+
+ io.serverlessworkflow
+ serverlessworkflow-fluent-spec
+ ${version.io.serverlessworkflow}
+
+
+ io.serverlessworkflow
+ serverlessworkflow-fluent-func
+ ${version.io.serverlessworkflow}
+
+
+ io.serverlessworkflow
+ serverlessworkflow-fluent-agentic
+ ${version.io.serverlessworkflow}
+
+```
+
+---
+
+## 📖 Module Reference
+
+### 1. Spec Fluent
+
+Fully compliant with the CNCF Serverless Workflow spec.\
+Use it when you want a 1:1 mapping of the YAML DSL in Java.
+
+```java
+import io.serverlessworkflow.api.types.Workflow;
+import io.serverlessworkflow.fluent.spec.WorkflowBuilder;
+
+Workflow wf = WorkflowBuilder
+ .workflow("flowDo")
+ .tasks(tasks ->
+ tasks
+ .set("initCtx", "$.foo = 'bar'")
+ .forEach("item", f -> f
+ .each("item")
+ .at("$.list")
+ )
+ )
+ .build();
+```
+
+> [!NOTE]
+> We rename reserved keywords (`for`, `do`, `if`, `while`, `switch`, `try`) to safe identifiers (`forEach`, `tasks`, `when`, etc.).
+
+---
+
+### 2. Func Fluent
+
+A Java‑first DSL that builds on **spec**, adding:
+
+- `callFn`: invoke arbitrary Java `Function<>` handlers
+- `Predicate<>` **guards** via `when(Predicate)`
+- Built‑in `Function`/`Predicate` support instead of JQ expressions
+
+```java
+import io.serverlessworkflow.api.types.Workflow;
+import io.serverlessworkflow.fluent.func.FuncWorkflowBuilder;
+
+Workflow wf = FuncWorkflowBuilder
+ .workflow("callJavaFlow")
+ .tasks(tasks ->
+ tasks.callFn("invokeHandler", call -> call
+ // e.g. call.className("com.acme.Handler")
+ // .method("handle")
+ // .arg("key", "value")
+ .function(ctx -> {
+ // your code here
+ })
+ )
+ )
+ .build();
+```
+
+> [!WARNING]
+> The **func** DSL is *not* spec‑compliant. It adds Java‑specific tasks and control‑flow extensions for in‑JVM execution.
+
+---
+
+### 3. Agentic Fluent *(Experimental)*
+
+Built on **func** for LangChain4j agentic workflows. Adds:
+
+- `agent(instance)`: invoke a LangChain4j agent
+- `sequence(...)`: run agents in order
+- `loop(cfg)`: retry or repeated agent calls
+- `parallel(...)`: fork agent calls concurrently
+
+```java
+import io.serverlessworkflow.api.types.Workflow;
+import io.serverlessworkflow.fluent.agentic.AgentWorkflowBuilder;
+
+var scorer = AgentsUtils.newMovieExpert();
+var editor = AgentsUtils.newMovieExpert();
+
+Workflow wf = AgentWorkflowBuilder
+ .workflow("retryFlow")
+ .tasks(tasks -> tasks.loop(
+ "reviewLoop",
+ loop -> loop
+ .maxIterations(5)
+ .exitCondition(c -> c.readState("score", 0).doubleValue() > 0.75)
+ .subAgents("reviewer", scorer, editor)
+ ))
+ .build();
+```
+
+---
+
+## 🚀 Real‑World Example: Order Fulfillment
+
+```java
+import io.serverlessworkflow.api.types.Workflow;
+import io.serverlessworkflow.fluent.agentic.AgentWorkflowBuilder;
+import java.util.function.Predicate;
+
+public class OrderFulfillment {
+
+ static class InventoryAgent { /* … */ }
+ static class NotificationAgent { /* … */ }
+ static class ShippingAgent { /* … */ }
+
+ public Workflow buildWorkflow() {
+
+ Predicate
-
- io.serverlessworkflow
- serverlessworkflow-types
-
io.serverlessworkflow
serverlessworkflow-fluent-spec