Open Specification · Apache 2.0

The open spec for
event-driven flows

FlowDSL is a domain-specific language for describing how events move between nodes. Define flows, delivery guarantees, and packet schemas in one document your team can read, validate, ship, and visualize.

Sibling to OpenAPI and AsyncAPI — completing the API specification family.

JSON Schema Draft-07 5 Delivery Modes 8 Node Kinds Go · Python · TypeScript

Nodes define business logic

Each node is a pure, testable unit of work — no transport concerns, no broker coupling.

Edges define delivery semantics

Choose delivery guarantees per edge: in-process, Redis, MongoDB, or Kafka.

The runtime enforces guarantees

Retries, checkpointing, and replay handled automatically — zero glue code.

AI-Ready

Built for agentic workflows

Design, test, and ship AI agent flows with the same tooling you use for every other pipeline.

AI Agent Orchestration

Chain LLM calls, tool use, and decision nodes into production-ready agentic workflows.

Test Without Breaking

Every node is isolated and testable. Run flows against mocks — validate before you deploy.

Any API. One Edge.

Import OpenAPI specs directly. Connect any REST, gRPC, or webhook endpoint in seconds.

Automated QA Built In

Snapshot tests for flows. CI/CD validation. Catch regressions before they hit production.

Source of Truth

One file. Complete flow.

Every flow starts as YAML or JSON. The Studio canvas is just a projection — the spec file is what ships.

order-pipeline.flowdsl.yaml
flowdsl: "1.0"
info:
  title: Order Processing Pipeline
  version: "1.0.0"

nodes:
  ValidateOrder:
    operationId: validate_order
    description: Validates incoming order payload
  ChargePayment:
    operationId: charge_payment
    description: Charges the customer's payment method
  FulfillOrder:
    operationId: fulfill_order
    description: Triggers warehouse fulfillment

edges:
  - from: ValidateOrder
    to: ChargePayment
    delivery:
      mode: durable
  - from: ChargePayment
    to: FulfillOrder
    delivery:
      mode: checkpoint
Works With Your Stack

Already have API schemas?

FlowDSL sits alongside OpenAPI and AsyncAPI. Reference existing schemas — add executable flow logic on top.

OpenAPI→ HTTP request/response schemas
AsyncAPI→ event & message contracts
FlowDSL→ executable flow graphs & runtime
View JSON Schema →
API contracts
Getting Started

Three steps to production

01

Declare

Write nodes, edges, and delivery policies in a single .flowdsl.yaml file.

02

Visualize

Open in FlowDSL Studio — a visual editor that projects your schema onto an interactive canvas.

03

Execute

Deploy to the Go runtime or integrate with Python / TypeScript SDKs.

$npx flowdsl validate my-flow.flowdsl.yaml
Node Catalog

Eight node kinds

Every node has a kind that determines its role in the flow graph.

sourceIngests external events
transformMaps & enriches data
routerContent-based branching
llmAI/ML inference
actionSide effects & API calls
terminalFinal delivery out
integrationPlatform bridges
subworkflowEmbeds entire flows
Edge Delivery

Five delivery modes

Choose the right guarantee per edge. No code changes — just a different policy.

directin-process · none
ephemeralRedis / NATS / RabbitMQ · low
checkpointMongo / Redis / PG · stage-level
durableMongo / Postgres · packet-level
streamKafka / Redis / NATS · durable stream
Capabilities

Built for real systems

Everything for event-driven architectures at scale.

Agentic AI flows

Orchestrate LLM chains, tool invocations, and human-in-the-loop — all as declarative flow graphs.

Testable by design

Every node runs in isolation. Mock inputs, assert outputs, snapshot entire flows for CI.

OpenAPI in one click

Import any OpenAPI spec as a node. Auto-generate typed edges from endpoint contracts.

Safe node development

Develop and test nodes with full type safety. Typed packets prevent runtime surprises.

Composable subflows

Embed entire FlowDSL documents as subworkflow nodes. Reuse across projects.

Built-in observability

ClickHouse-backed metrics. Trace every packet through every node in real time.

SDKs

Three languages. One spec.

Go

Full runtime engine

  • gRPC node invocation
  • MongoDB/Redis/Kafka transports
  • ClickHouse observability
flowdsl/flowdsl-go →

Python

FastAPI + redelay SDK

  • Pydantic v2 models
  • AsyncAPI auto-generation
  • redelay event framework
flowdsl/flowdsl-py →

TypeScript

Type-safe SDK

  • JSON Schema validation
  • Document serialization
  • Studio integration
flowdsl/flowdsl-js →
Ecosystem

Open core. Commercial runtimes.

Open Source

FlowDSL.com

Spec, Studio, SDKs, Examples, AI assistant and reference runtime. Apache 2.0.

github.com/flowdsl →
Marketplace
Coming soon

Node Catalog

Discover, share, and install community and premium FlowDSL nodes.

Coming soon
Cloud
Coming soon

Cloud Service

Deploy and run FlowDSL workflows in a managed cloud environment.

Coming soon
Built-in Assistant

Ask anything about FlowDSL

Our AI assistant searches the documentation and provides accurate answers in natural language. Powered by open-source models running on your infrastructure.

Searches all documentation for relevant context
Answers in natural language with examples
Powered by Ollama — runs on your own hardware
FlowDSL Assistant

Try asking a question

Click any question below to get started

Start building flows today

Read the spec, design in the Studio, or deploy on the runtime. Everything is open source.