Skip to main content
Version: Next

Top-level configuration

An ArkFlow configuration describes the engine: logging, the health-check / control-plane server, and the list of streams to run. The file format is selected by extension — .yaml/.yml, .json, or .toml are all accepted.

logging:
level: info

health_check:
enabled: true
address: "127.0.0.1:8080"

streams:
- id: orders
input: { ... }
pipeline: { ... }
output: { ... }

Top-level fields

FieldTypeRequiredDefaultDescription
streamsarray<stream>yesStreams to run.
loggingobjectnosee belowLogging configuration.
health_checkobjectnosee belowHealth-check and control-plane server.

logging

FieldTypeRequiredDefaultDescription
levelstringnoinfoLog level: debug, info, warn, error.
file_pathstringnoWrite logs to this file instead of stdout.
formatstringnoplainLog format: plain or json.

health_check

Runs an HTTP server with /health, /readiness, and /liveness endpoints (useful for Kubernetes). The same server also hosts the optional control-plane API and the Hub agent when hub_url is set (see Control plane).

FieldTypeRequiredDefaultDescription
enabledbooleannotrueStart the health-check / control-plane server.
addressstringno127.0.0.1:8080Listen address.
health_pathstringno/healthOverall health endpoint path.
readiness_pathstringno/readinessReadiness endpoint path.
liveness_pathstringno/livenessLiveness endpoint path.
api_prefixstringno/api/v1Prefix for the versioned control-plane API.
api_tokenstringnoOptional Bearer token protecting control-plane operations and configuration.
cors_originsarray<string>no[]Browser origins allowed to call the control API. Empty denies cross-origin calls.
hub_urlstringnoHub URL for compute-node agent mode. Absent ⇒ standalone mode.
node_idstringnoStable identity this process reports to its Hub.
node_tokenstringnoShared node registration credential. Never included in reports.
agent_lease_ttl_msintegerno15000Lease duration (ms) a compute node advertises to its Hub.

stream

Each entry in streams is one independent processing pipeline. Stream fields are documented in depth in the Components section; the shape is:

FieldTypeRequiredDefaultDescription
idstringnostream-<index>Stable stream identifier (must be unique; used for WAL identity and Hub reporting).
inputobjectyesInput component (source).
pipelineobjectyesProcessor pipeline.
outputobjectyesOutput component (sink).
error_outputobjectnoOutput that receives batches a processor failed on.
bufferobjectnoBuffer / windowing strategy between input and processors.
durabilityobjectnoPer-stream WAL durability (see Delivery semantics).
temporaryarray<object>noTemporary storage tables for joins.

pipeline

FieldTypeRequiredDefaultDescription
thread_numintegerno1Number of processor worker tasks.
processorsarray<object>yesOrdered list of processor components.

Validate before running

Always validate a config first:

./target/release/arkflow --config config.yaml --validate

Or emit the full JSON Schema and point your editor at it for field-level completion:

./target/release/arkflow schema > arkflow.schema.json