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.
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.
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.
One file. Complete flow.
Every flow starts as YAML or JSON. The Studio canvas is just a projection — the spec file is what ships.
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: checkpointAlready have API schemas?
FlowDSL sits alongside OpenAPI and AsyncAPI. Reference existing schemas — add executable flow logic on top.
Three steps to production
Declare
Write nodes, edges, and delivery policies in a single .flowdsl.yaml file.
Visualize
Open in FlowDSL Studio — a visual editor that projects your schema onto an interactive canvas.
Execute
Deploy to the Go runtime or integrate with Python / TypeScript SDKs.
Eight node kinds
Every node has a kind that determines its role in the flow graph.
Five delivery modes
Choose the right guarantee per edge. No code changes — just a different policy.
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.
Three languages. One spec.
Go
Full runtime engine
- gRPC node invocation
- MongoDB/Redis/Kafka transports
- ClickHouse observability
Python
FastAPI + redelay SDK
- Pydantic v2 models
- AsyncAPI auto-generation
- redelay event framework
TypeScript
Type-safe SDK
- JSON Schema validation
- Document serialization
- Studio integration
Open core. Commercial runtimes.
FlowDSL.com
Spec, Studio, SDKs, Examples, AI assistant and reference runtime. Apache 2.0.
github.com/flowdsl →Node Catalog
Discover, share, and install community and premium FlowDSL nodes.
Coming soonCloud Service
Deploy and run FlowDSL workflows in a managed cloud environment.
Coming soonAsk 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.
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.

