Your First Pipeline
Write a three-section YAML pipeline, verify it, test it, and run it.
Every Eventboat pipeline is a single YAML file with three top-level sections:
sources, transforms, and sinks — connected by from edges.
apiVersion: eventboat/v3
kind: Pipeline
metadata: { name: my-first-pipeline }
sources:
ingest:
cron: { expression: "*/5 * * * *" } # every 5 minutes
transforms:
hello:
from: [ingest]
script: |
payload.greeting = "hello from eventboat"
payload.timestamp = meta.ingest_time
sinks:
console:
from: [hello]
drop: {} # discard (demo)
Verify (gate 1)
eventboat verify --config pipeline.yaml
Output: pipeline.yaml: 0 error(s), 0 warning(s)
Run
eventboat run --config pipeline.yaml
The pipeline starts; every 5 minutes the cron source fires, the Starlark
script enriches the message, and the sink receives it.
Add branching (CEL predicates)
sinks:
important:
from: { hello: { when: 'payload.score > 100' } }
http: { url: "https://api.example.com/alerts" }
archive:
from: [hello] # unconditional edge
drop: {}
Agent mode
# Start the MCP server — AI agents connect via stdio
eventboat mcp --stdio
# Or with the admin UI
eventboat mcp --http
Next steps