GoPython & Node.js SDKs in progress

Write the handler once.
Serve it everywhere.

Redelay is an event-driven Go framework. One module serves REST, the event bus, SSE, MCP tools and cron — and FlowDSL turns the diagram you draw into the topology that runs.

Apache-2.0 · repos in private beta — request access
orders/handler.gomodule.yamlorders.flowdsl.yaml5 surfaces
1func GetOrder(ctx context.Context, in GetOrderIn) (*Order, error) {
2o, err := orders.Find(ctx, in.ID)
3if err != nil { return nil, err }
4events.Publish(ctx, "order.viewed", o)
5return o, nil
6}
curl api.example.com/orders/ord_42✓ 200 OK · 4 ms
click a surface · auto-cycling
WORKS WITH
  • Kafka
  • NATS
  • Redis Streams
  • MongoDB
  • ClickHouse
  • PostgreSQL
  • OpenAI
  • Anthropic
  • Ollama
  • Qdrant
  • MinIO
  • SendGrid
Transport-agnostic

One handler.
Five ways to call it.

Your code never knows how it was invoked. Pick a surface — the handler, the event and the schema stay the same.

  • OpenAPI + AsyncAPI generated from the module
  • Every side effect is a typed, validated event
  • Every operation auto-exposed as an MCP tool
same GetOrder handler · REST
$ curl api.example.com/orders/ord_42
HTTP/1.1 200 OK · 4 ms
{ "id": "ord_42", "status": "paid", "total": 129.0 }
# same moment, on the bus:
event order.viewed corr=7f3a… ✓ schema valid
Use ← → or click a tab. The call types itself; the event below it is the one your handler published.
FlowDSL

The diagram is the code.
Run it and watch.

The .flowdsl.yaml you draw in Studio is the topology that runs. Pick a ticket and run it — the YAML highlights the node that is executing.

nodes:
ticket_in:
kind: source
classify:
kind: llm · model: qwen3
route:
kind: router
answer:
kind: llm · grounded
handoff:
kind: email · durable
edges:
- ticket_in → classify → route
- route → answer | handoff
Ticket:
ticket_in source
classify llm · qwen3
route router
answer llm · grounded
handoff email · durable
running · node 1 of 40 ms
Batteries included

35 modules.
Blank-import what you need.

go-flowdslCore libraryParse .flowdsl.yaml into a canonical IR, scaffold Go modules, render SVG, detect drift and execute flows at runtime.
IR compilerCode genSVGFlow engine
go get github.com/redelay/go-flowdsl
Read the reference
Admin + Studio

An admin in
one command.

A Nuxt 4 admin with users, settings, flows, live runs and the AI-usage ledger — extend it as a layer. Click around: this one is live-ish.

make admin
acme admin
Flows4 live · sample data
support · classify → answer● live1,204 runs
payment captured → order● live340 runs
i18n sweep● live88 runs
blog media → ComfyUI● live12 runs
Build with us

Need it built, not just a framework?
Our team ships it on Redelay.

The people behind Redelay run stufio, a small studio that builds AI products on it — assistants, agents, shops and admin panels. Tell us what you need; the quote is free.

  • Architecture + FlowDSL design with your team
  • Modules, admin and deployment — production-ready
  • Hand-over or ongoing support, your choice
Visit stufio.com
Request a team→ stufio.com · free quote
What should we build?
Timeline

Sent to stufio, who runs Redelay's services team. We use it only to reply. Privacy policy

Three commands

From empty repo to a
running service.

$ redelayctl validate-module orders.module.yaml
OK — orders (v1.0.0): 0 warnings
entities: orders.order · events: order.created, order.viewed