This is the multi-page printable view of this section. .
Introduction
Eventboat 是什么、为什么存在、解决什么问题。
1 - What is Eventboat?
A Go single-binary DAG event router designed for AI agents to operate end-to-end.
Eventboat routes events through directed acyclic graphs (DAGs) of transforms — from sources (Kafka, HTTP, cron, SQL, files) to sinks (Kafka, HTTP, files), with at-least-once delivery, dead-lettering, and replay.
It is agent-native: every capability is accessible through MCP (Model Context Protocol), CLI, and a language server — so AI agents can write, verify, deploy, and operate pipelines autonomously.
What makes it different
| Dimension | Approach |
|---|---|
| Predicates | CEL (Kubernetes standard) — zero custom DSL, huge training corpus |
| Transforms | Starlark (Python dialect, sandboxed, deterministic) |
| Verification | Four machine gates: verify, test, explain, operate |
| Reliability | Seven invariant tests, spool/settle/checkpoint engine on SQLite |
| Jobs | Cron scheduling, catchup windows, typed parameters, backfill |
| Extension | CEL → Starlark → WASM → gRPC out-of-process plugins |
| Interop | CESQL dialect (CloudEvents), official TCK 100% |
The one-line pitch
Eventboat lets AI agents build and run event pipelines that don’t lose messages — because machines verify every step before it goes live.
2 - Architecture
How the Eventboat engine works: three-layer pipeline, spool+settle+checkpoint reliability, and the four-gate verification model.
Three-layer model
- Config layer: YAML parsing, strict schema validation, variable substitution
- Static IR: validated DAG + precompiled CEL programs + Starlark programs + schema
- Runtime: spool + settle + checkpoint engine, consuming only the IR
Reliability model
- Spool: every message hits SQLite before the DAG sees it (invariant 1)
- Settle: each message settles when all branches reach terminal state
- Checkpoint: advances only over settled prefix (invariant 2)
- Crash recovery: kill -9 → restart → replay from checkpoint, never lose (invariant 3)
- Dead letters: exhausted retries → DLQ store with query + replay CLI
Seven invariant tests
Each has a dedicated test that must pass in CI:
- Spool before visible
- Checkpoint advances only after settle
- Kill -9 replay covers all unsettled
- Dead-letter write failure blocks settle
required: falseedges don’t block siblings- Redelivery keeps message ID stable
- Cursor watermark never exceeds settled
Four machine gates
| Gate | Command | What it does |
|---|---|---|
| verify | eventboat verify | Schema, topology, CEL+Starlark compile, lint — static, zero side effects |
| test | eventboat test | Contract tests against the real engine — fixture in, assertions out |
| explain | eventboat explain --message sample.json | Deterministic path walkthrough with real CEL evaluation and Starlark dry-run |
| operate | eventboat mcp | MCP server: 15 tools covering the full agent lifecycle |