Skip to content

This is the multi-page printable view of this section. .

Return to the regular view of this page.

Get Started

Install Eventboat, write your first pipeline, verify it, and run it.

1 - Installation

Install the Eventboat CLI binary on your platform.

Prerequisites

  • Go 1.25+ (for building from source)
  • No runtime dependencies — everything is compiled into one binary

Install

go install github.com/eventboat/eventboat/cmd/eventboat@latest

Verify:

eventboat help

You should see the help screen with 11 commands listed.

What’s in the binary

ComponentIncluded
Engine (spool/settle/checkpoint)
CLI (verify/test/run/trigger/jobs/explain/replay/repl/lsp/plugin/mcp)
Built-in sources (kafka/http_server/cron/file/sql)
Built-in sinks (kafka/http/file/drop)
Built-in codecs (json/raw/csv/avro/protobuf)
MCP server (15 tools)
LSP (diagnostics/completion/hover)
Admin REST + SSE + read-only UI
OpenTelemetry (OTLP + Prometheus)
SQLite storage (pure Go, no CGO)

Next steps

2 - Your First Pipeline

Write a three-section YAML pipeline, verify it, test it, and run it.

The three-section format

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