<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Reference on Eventboat</title><link>https://eventboat.dev/docs/reference/</link><description>Recent content in Reference on Eventboat</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Sat, 05 Sep 2026 01:05:51 +0800</lastBuildDate><atom:link href="https://eventboat.dev/docs/reference/index.xml" rel="self" type="application/rss+xml"/><item><title>CLI Reference</title><link>https://eventboat.dev/docs/reference/commands/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eventboat.dev/docs/reference/commands/</guid><description>&lt;h2 id="overview"&gt;Overview&#10;&lt;/h2&gt;&#10;&lt;div class="td-code td-code--untitled" id="td-code-0748f80e-fence-0" data-td-code data-td-code-auto-id&#10; data-td-language="console" data-td-line-count="14"&gt;&#10; &lt;div class="td-code__viewport" id="td-code-0748f80e-fence-0-viewport" data-td-code-viewport&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-console" data-lang="console"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;eventboat [--json] verify --config &amp;lt;pipeline.yaml&amp;gt; [--strict]&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;eventboat [--json] test &amp;lt;testfile-or-dir&amp;gt; [...]&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;eventboat run --config &amp;lt;pipeline.yaml&amp;gt; [--data-dir DIR] [--ephemeral]&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;eventboat run --config-dir &amp;lt;dir&amp;gt; [--runtime runtime.yaml]&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;eventboat [--json] trigger --config &amp;lt;job.yaml&amp;gt; [--parameters &amp;#39;{&amp;#34;from&amp;#34;:&amp;#34;...&amp;#34;}&amp;#39;]&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;eventboat [--json] jobs list --config &amp;lt;job.yaml&amp;gt; [--limit N]&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;eventboat [--json] jobs show &amp;lt;run-id&amp;gt; --config &amp;lt;job.yaml&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;eventboat [--json] explain --config &amp;lt;pipeline.yaml&amp;gt; [--message f.json] [--topology]&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;eventboat [--json] replay --config &amp;lt;pipeline.yaml&amp;gt; (--dlq | --spool --from N | --job &amp;lt;run-id&amp;gt;) [--dry-run]&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;eventboat repl [--message sample.json] [--cel &amp;#39;expr&amp;#39; | --script f.star]&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;eventboat lsp&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;eventboat [--json] plugin catalog&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;eventboat [--json] plugin schema &amp;lt;name&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;eventboat mcp (--stdio | --http) [--config-dir &amp;lt;dir&amp;gt;] [--data-dir DIR]&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;h2 id="verify"&gt;verify&#10;&lt;/h2&gt;&#10;&lt;p&gt;Statically validate a pipeline. Checks schema, topology invariants&#10;(no cycles, no orphans, source has no in-edges, sink has no out-edges,&#10;at least one source→sink path), CEL predicate compilation, Starlark&#10;script compilation, job configuration, and semantic lint.&lt;/p&gt;</description></item><item><title>Configuration</title><link>https://eventboat.dev/docs/reference/configuration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://eventboat.dev/docs/reference/configuration/</guid><description>&lt;h2 id="top-level-sections"&gt;Top-level sections&#10;&lt;/h2&gt;&#10;&lt;div class="td-table-scroll td-table-scroll--static"&gt;&#10;&lt;table&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&#10; &lt;th scope="col"&gt;Section&lt;/th&gt;&#10; &lt;th scope="col"&gt;Required&lt;/th&gt;&#10; &lt;th scope="col"&gt;Purpose&lt;/th&gt;&#10; &lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;apiVersion&lt;/code&gt; / &lt;code&gt;kind&lt;/code&gt; / &lt;code&gt;metadata&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;✅&lt;/td&gt;&#10; &lt;td&gt;Resource identity (K8s convention)&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;sources&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;✅ (≥1)&lt;/td&gt;&#10; &lt;td&gt;Topology: where events come from&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;transforms&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;optional&lt;/td&gt;&#10; &lt;td&gt;Topology: what happens to events&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;sinks&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;✅ (≥1)&lt;/td&gt;&#10; &lt;td&gt;Topology: where events go&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;run&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;job pipelines only&lt;/td&gt;&#10; &lt;td&gt;Job scheduling (mode/schedule/overlap/catchup_window)&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;parameters&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;job optional&lt;/td&gt;&#10; &lt;td&gt;Typed job parameters with defaults&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;constants&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;optional&lt;/td&gt;&#10; &lt;td&gt;Read-only values visible to scripts and predicates&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;hooks&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;optional&lt;/td&gt;&#10; &lt;td&gt;Lifecycle hooks (failure/success → inline sink)&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;limits&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;optional&lt;/td&gt;&#10; &lt;td&gt;Per-pipeline resource limits&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;edge_defaults&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;optional&lt;/td&gt;&#10; &lt;td&gt;Default edge attributes&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;codecs&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;optional&lt;/td&gt;&#10; &lt;td&gt;Named codec declarations&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;tr&gt;&#10; &lt;td&gt;&lt;code&gt;dlq&lt;/code&gt;&lt;/td&gt;&#10; &lt;td&gt;optional&lt;/td&gt;&#10; &lt;td&gt;Dead-letter policy&lt;/td&gt;&#10; &lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h2 id="three-section-topology"&gt;Three-section topology&#10;&lt;/h2&gt;&#10;&lt;p&gt;Nodes are organized by section; edges declared on the downstream side via &lt;code&gt;from&lt;/code&gt;:&lt;/p&gt;</description></item></channel></rss>