NEXSS FLOW · OPEN SOURCE ORCHESTRATION
Typed DSL · Go runtime · Apache-2.0 | Actions + Streams
NEXSS FLOW · ACTIONS · STREAMS · AI

Compose complex work.
Keep the flow typed.

Nexss Flow connects typed actions, lazy streams, parallel branches, bounded loops, structured AI output, and fallback policies in one readable workflow language.

Typed
Action boundaries
Lazy
Stream execution
Domainless
Workflow language
Why Nexss Flow

One graph for actions, streams, and AI.

Flow keeps orchestration visible: the graph is the documentation, and the runtime remains responsible for execution semantics.

Use the same composition model for local actions, distributed transports, AI providers, sandboxes, and typed stream operators. Keep domain models in their own packages and connect them with explicit contracts.

Typed state at boundaries
Streams without hand-written plumbing
Bounded retries and fallback
Readable domainless DSL

Flow building blocks Kernel + Flow

CORE CONTRACTS
AnyAction / AnyStreamAction Typed records + schemas Projection + loop state Parallel composition Fallback policies
AI COMPOSITION
model + typed output stream review workers bounded repair loops adapter-owned policy
RUNTIME EDGES
NATS · HTTP · CLI stream transports pluggable adapters observability + sandbox
Flow runtime

The nflow model

A readable orchestration layer over the Nexss Kernel: typed actions, streams, parallel work, structured output, and resilient execution.

Typed action graph

Compose existing actions without moving business logic into the DSL.

Inline schemas

Use :typed=Verdict or :schema=Verdict at AI boundaries and keep important outputs explicit.

Lazy streams

Parallel reviewers, merge, filter, batch, collect, and reduce with a stream boundary.

AI fallback + loops

Run bounded repair loops and switch models on classified provider failures.

The language is the graph

Less glue code.
More intent.

nflow does not replace your Go services. It names the composition: what runs, what can run in parallel, what is typed, and what happens when an external model fails.

The hard parts stay in the Kernel and adapters. The workflow stays short enough to review as a diagram and precise enough to execute.

agent-review.nflowtyped · bounded · recoverable
{ goal: .goal, attempt: 1 }

(
  ai.prompt:model="qwen-coder"@Propose a fix
  &
  ai.prompt:model="deepseek-coder"@Propose a fix
)
-> merge
-> ai.prompt:typed=Verdict@Choose the safest patch
-> { patch: .verdict.patch, approved: .verdict.approved }
-> loop( sandbox.test )
   until( approved == true || attempt >= 4 )
-> ai.prompt:model="backup-model"
   || ai.prompt:model="primary-model"
The Nexss point of view

A language for the work between services.

The unique part is not another syntax layer. It is the shared contract between Kernel actions, lazy streams, AI outputs, and the graph that connects them.

01 · NAME

Intent stays visible

A reader can see the system's topology, fallback, loop boundary, and state projection without opening five service repositories.

02 · TYPE

Contracts stay real

Typed actions, typed stream items, and structured AI output keep the important boundaries explicit instead of turning the graph into untyped maps.

03 · RUN

Runtime does the hard work

Cancellation, bounded concurrency, retries, provider fallback, and stream lifecycle belong to the runtime—not to every workflow author.

Runtime stages

From DSL to execution

A small number of explicit stages keeps complex workflows debuggable and testable.

1 · Compile

Parse DSL → validate contracts
typed
  • Build a graph of typed actions and stream operators.
  • Resolve registered actions, schemas, and runtime adapters.
  • Keep AI providers behind explicit action contracts.
  • Leave domain-specific behavior to domain packages.

2 · Execute

Kernel + Flow runtime
parallel
  • Run branches, streams, projections, and loops with bounded concurrency.
  • Propagate context, cancellation, timeout, and structured errors.

3 · Observe

Events + metrics
visible
  • Observe action and stream lifecycle without changing business handlers.
  • Measure throughput, failures, retries, and provider fallback.
  • Keep per-item observation opt-in.

4 · Extend

Adapters, not rewrites
open
  • Add AI, NATS, HTTP, sandbox, and storage adapters at the edges.
Practical patterns

What becomes possible

Reusable composition patterns for real systems.

Model 01

Parallel research

Run several typed workers, merge their streams, deduplicate findings, and ask one judge for a structured verdict.

See pattern →
Model 02

Repair loop

Gradually replacing fragile PHP, Parallel composition, or Node monoliths with high-throughput Go services using dark launches and zero downtime.

See pattern →
Model 03

Provider fallback

Try a primary model, classify provider errors in the kernel, and switch to a backup without breaking the pipeline.

See pattern →
Start with the graph

Make the workflow explicit.

Start with a typed action, a stream boundary, or a small .nflow example. Grow only where the execution graph proves it is needed.

Kernel + Flow · Apache-2.0 · Open source