Open-source event routing control plane

Rohrpost makes event routes deployable.

Use Rohrpost when raw website, webhook, NATS, or Kafka-style events need to become governed routes instead of one-off connector glue. FlowSpecs are versioned API objects, deployments are observable, and replay runs through durable NATS JetStream streams.

FlowSpec v1 NATS JetStream REST control API console UI skills.sh ready
Author Draft flows through the console, REST API, or the installable skills.sh agent skill.
Deploy Publish immutable revisions and keep deployment state separate from draft editing.
Operate Route with explicit at-least-once semantics, per-partition ordering, and bounded retries.
Recover Replay from durable work streams and preserve audit records for runtime inspection.

Control plane plus runtime plane

The runtime is intentionally bare. The control model is the product.

Connector engines are not scarce. The useful gap is making routes inspectable, versioned, replayable, and automatable without turning every team into data-platform operators.

runtime topology self-hosted
control plane
console control-api SQLite state runtime-manager
broker
NATS subjects JetStream ingress JetStream work retry / replay / dlq / audit
runtime plane
router-workers HTTP ingress native NATS sinks adapter-redpanda
interfaces
REST contracts FlowSpec validation LLM draft assist GTM catcher
FlowSpecs are API objects. Sources, processors, routes, sinks, retry policy, DLQ policy, batching, and idempotency are explicit in a typed spec.
Deployments are separate from drafts. A route can be drafted, validated, saved, published, rolled forward, or inspected without editing runtime code.
Replay is part of operations. Accepted work is written through JetStream subjects, so retries and replay requests use the same runtime lane.

Useful primitives

Built for teams that want routes as infrastructure, not screenshots.

The first iteration focuses on the behaviors technical users look for before trusting an event route: reproducible setup, known contracts, and enough operational surface to debug failure.

01 / authoring

Prompt to FlowSpec

Use the control API to draft a candidate flow from a natural-language request and sample payload, then validate it before saving or publishing.

02 / ingress

Website event capture

A GTM Custom HTML snippet can mirror controlled dataLayer.push(...) events into a configured Rohrpost HTTP ingress endpoint.

03 / semantics

Explicit delivery tradeoffs

The runtime states at-least-once delivery, possible duplicates, per-partition ordering only, and retries only for idempotent sinks.

04 / replay

Durable work streams

Ingress, work, retry, replay, DLQ, and audit traffic use named JetStream streams with bounded retention and backpressure.

05 / ops

Known local ports

The Kubernetes port-forward helper gives agents and humans stable localhost endpoints for the console, API, router, adapters, and runtime manager.

06 / install

Agent test drive

The skills.sh package teaches an agent how to bootstrap Docker plus kind, deploy the stack, and create flows through the API.

Local test drive

Start with the same ports every time.

Use the agent shortcut if your environment supports skills.sh. Use the manual kind path when you want to see each moving part yourself.

terminal Docker + kind + Bun
# Agent shortcut
npx skills add vorcigernix/rohrpost --skill rohrpost

# Manual local Kubernetes path
bun install
kind create cluster --name rohrpost
K8S_CONTEXT=kind-rohrpost bun run k8s:deploy
bun run k8s:port-forward

# Then open the console
http://127.0.0.1:3000

Forwarded endpoints

console127.0.0.1:3000
control-api127.0.0.1:3001
router-workers127.0.0.1:3002
adapter-redpanda127.0.0.1:3003
runtime-manager127.0.0.1:7102

The helper script keeps these port forwards open, which makes follow-up automation predictable.

Where it fits

Rohrpost is not trying to be the whole data platform.

It is closest to a governed routing layer for product and website events: lightweight enough to self-host, explicit enough to test, and open enough to automate from outside the UI.

Neighbor Good at Rohrpost angle
Redpanda Connect / Benthos Declarative stream processing with a broad connector catalog. Rohrpost leans into versioned flow objects, deployment state, replay, audit, and console/API operation around a durable runtime.
Apache NiFi Large visual dataflow platform with mature operational concepts. Rohrpost aims for a smaller self-hosted control API plus FlowSpec model, better suited to route automation and agent-driven setup.
Synadia Connect NATS-native inlets and outlets for point-to-point movement. Rohrpost adds multi-step route authoring, revisioned deployment, and runtime inspection as first-class product surfaces.
Vector, CDP, webhook tools Specific domains such as observability pipelines, customer data collection, or webhook delivery. Rohrpost treats event routes as governed infrastructure that can start from GTM or HTTP ingress and end in owned sinks.