Overview

What Redelay is, why it exists, and how the pieces fit together.

What is Redelay?

Redelay is a modular, event-driven application framework for building distributed services. It provides a unified layer for:

  • Event publishing and consuming with pluggable transports (Kafka, NATS, Redis Streams) and schema validation
  • Distributed cron scheduling with leader election
  • Multi-database connectivity (MongoDB, ClickHouse, Redis)
  • Native FlowDSL integration for describing orchestration topology
Go-only for the initial release. Python (FastAPI) and Node.js SDKs are in active development — they will share the same event schema and FlowDSL runtime as the Go framework, so today's Go services will interoperate with them on day one.

Why Redelay?

Building event-driven systems in production typically involves writing the same infrastructure code over and over: topic resolution, consumer group management, retry logic, schema validation, health checks. Redelay packages all of this once and exposes a clean, idiomatic API — in Go today, and in Python and Node.js as those SDKs land.

More importantly, Redelay separates what your code does (node implementations) from how events are routed (flow topology). The topology lives in .flowdsl.yaml files — readable by humans, renderable as diagrams in FlowDSL Studio.

Framework layers

text
redelay/
├── go-framework    Go app bootstrap, module registry, auth, users,
│                   OpenAPI, MCP, HTTP server, chi routing
│
├── go-events       Go Kafka/NATS/Redis transports, typed event handlers,
│                   AsyncAPI schema validation, EventBus
│
├── go-flowdsl      Go FlowDSL toolchain — IR, parser, validator,
│                   compiler, runtime engine
│
├── go-modules      Opt-in addon modules — scheduler, settings, storage,
│                   notifications, flowexec, metrics, and more
│
├── py-framework    Python SDK — coming soon
├── py-events       Python event library — coming soon
├── js-framework    Node.js SDK — coming soon
└── js-events       Node.js event library — coming soon

Relationship to FlowDSL

Redelay is the reference runtime for FlowDSL:

FlowDSL conceptRedelay implementation (Go)
node (source)Event published by a Redelay service
node (action)bus.Register(&ConsumerRegistration{...}) / typed handler
edge (durable)Kafka topic with at-least-once delivery
packetTyped Go struct encoded as JSON
flow.flowdsl.yaml file read by the Redelay runtime

The AsyncAPI schema that Redelay auto-generates is the bridge: FlowDSL references it to resolve packet schemas, and services validate incoming events against it. When the Python and Node.js SDKs ship, they will consume the same AsyncAPI contract.

Ecosystem at a glance

text
.flowdsl.yaml          ← topology declaration (source of truth)
      │
      ▼
Redelay runtime        ← routes events to the right handler
      │
      ├── go-events    ← bus.Register(&ConsumerRegistration{...})
      ├── py-events    ← coming soon
      ├── js-events    ← coming soon
      └── AsyncAPI     ← auto-generated, served at /asyncapi.json