A local-first desktop Kafka event-flow debugger.
orson-demo-compressed.mp4
Orson helps developers understand what happens after publishing a Kafka event.
It captures related downstream events, displays them on a live timeline and flow graph, and lets you inspect each message's payload, headers, partition, and offset.
Orson runs on your machine and connects directly to the Kafka broker you configure. Your payloads and captured events are not uploaded to an Orson cloud service or analytics pipeline.
The demo pipeline models an order flow:
order.created
├── payment.charged
│ ├── inventory.reserved
│ └── notification.sent
└── order.cancelled
- Persistent local workspaces with workspace-scoped imported scenarios
- Workspace-scoped persistent run history with historical run inspection
- One remembered non-secret Kafka connection configuration per workspace
- Root event publishing
- Correlation-header based event tracking
- Live downstream event updates
- Topology-driven flow graph
- Chronological event timeline
- Payload and header inspection
- Zoom, zoom-to-fit, and graph selection
- Successful, failed, in-progress, and unwitnessed states
- Connect Orson to a Kafka broker.
- Configure a root topic and watched topics.
- Publish a root event.
- Orson adds a correlation ID and watches for matching downstream events.
- Inspect the run through the timeline and flow graph.
The flow graph represents the topology configured by the scenario. Correlation headers identify events belonging to the same run, but do not by themselves prove direct causality.
Orson is an early MVP.
The current version is focused on local development and demonstration. Kafka connections are established explicitly for each app session, non-secret connection settings and captured run history are stored locally per workspace, and history payloads are not uploaded to an Orson cloud service.
The deeper product and architecture notes live in PROJECT.md.
- Go 1.25+
- Node.js and npm
- Docker
- Wails CLI
Orson uses Wails v2.15.0, matching the version pinned in go.mod:
go install github.com/wailsapp/wails/v2/cmd/wails@v2.15.0Make sure Go's install directory is on your PATH so the wails command is available.
From the repository root:
npm install
npm --prefix frontend installdocker compose -f demo/compose.yaml up --buildThe demo broker is available to host applications at localhost:9092.
In another terminal:
wails devConnect to localhost:9092, configure the order scenario, and publish a root event from the
workbench. To exercise the demo pipeline independently, publish the included successful fixture:
go run ./demo/publisher -file demo/fixtures/successful-order.jsonThe demo services use plaintext Kafka and are intended for local development only.
- Go and franz-go handle Kafka connections, publishing, and event capture.
- React and TypeScript handle the workbench, timeline, flow graph, and inspector.
- Wails connects the frontend to the Go backend.
- YAML files define scenario configuration and expected topology.
- Plain SVG renders the initial fixed flow graph.
See the directional roadmap for current priorities. It is not strictly followed; priorities can change as Orson is used with real Kafka workflows.