This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
make build- Build the binary with CGO disabled and install schema filesmake build-all- Build for multiple platforms (linux-amd64, linux-arm64, darwin-amd64)make clean- Clean build artifacts
make test- Run all tests with verbose outputgo test -v ./...- Run all tests directly./test/test_registration.sh- Test registration functionality
make deps- Update Go module dependenciesmake run-example- Build and run the example pipeline./scripts/generate.sh- Generate Go code from proto files
The sandbox provides a local containerized environment for development:
Prerequisites: Docker or nerdctl must be installed on your system.
# Start sandbox
./bin/flowctl sandbox start --pipeline examples/sandbox-pipeline.yaml --services examples/sandbox.yaml
# Check status
./bin/flowctl sandbox status
# View logs
./bin/flowctl sandbox logs
# Stop sandbox
./bin/flowctl sandbox stopNote: The --use-system-runtime flag is still supported but no longer required (it's now the default behavior).
go test -v ./internal/core -run TestPipelineDAGThe application is a CLI tool built with Cobra framework:
- Root:
flowctl- Base command with global flags - Core Commands:
init,run,validate,translate - Monitoring:
dashboard,status,list,pipelines,processors - Development:
sandbox - Utility:
version - Hidden:
server(standalone control plane mode)
Pipeline Execution (internal/core/)
- Two execution models: Simple (linear) and DAG (complex topologies)
- Components (sources, processors, sinks) run as separate containers/processes
- Communication via gRPC with typed events
Configuration (internal/config/)
- Kubernetes-style YAML (apiVersion, kind, metadata, spec)
- CUE schema validation in
schemas/cue/schema.cue - TLS/mTLS configuration support
Translation System (internal/translator/)
- Converts pipeline YAML to deployment formats
- Supports Docker Compose, Kubernetes (planned), Nomad (planned), Local execution
- Uses CUE for validation during translation
Control Plane (internal/api/)
- gRPC-based service for component registration
- Health monitoring and service discovery
- Storage backends: BoltDB (embedded) or in-memory
- Plugin Architecture: Sources, processors, and sinks are pluggable components implementing standard interfaces
- Event-Driven: Components communicate via typed events with buffered channels for backpressure
- Interface-Based: Heavy use of Go interfaces for extensibility
- Cloud-Native: Designed for containerized deployment with multiple orchestrator support
Sources → Processors → Sinks
↓ ↓ ↓
└──────────┴─────────┘
↓
Control Plane
(gRPC API)
Components register with the control plane on startup and send periodic heartbeats for health monitoring.
- Pipeline examples:
examples/getting-started/ - Schema definition:
schemas/cue/schema.cue - Proto definitions:
proto/directory - Storage interface:
internal/storage/storage.go
flowctl init- Interactive wizard to create a new Stellar pipelineflowctl validate <file>- Validate pipeline configuration before runningflowctl run <file>- Run a pipeline with embedded control planeflowctl translate -f <file> -o <format>- Translate pipeline to docker-compose or local format
flowctl dashboard- Interactive TUI dashboard for real-time monitoringflowctl status [file]- Show component health and statusflowctl pipelines- Manage pipeline runs (list, active, runs, stop)flowctl processors- Discover and inspect processors (list, find, show)flowctl list- List all registered services
flowctl sandbox start- Start local containerized dev environmentflowctl sandbox status- Check sandbox statusflowctl sandbox logs- View sandbox logsflowctl sandbox stop- Stop sandbox environment
flowctl version- Print version informationflowctl server- Run standalone control plane (hidden command)