krab_orchestrator 0.4.0

Multi-process service runner for Krab workspaces, driven by krab.toml
krab_orchestrator-0.4.0 is not a library.

krab_orchestrator

Multi-process service runner for Krab workspaces.

The orchestrator reads krab.toml, starts every declared service as a supervised child process, and manages them as one unit: health-aware startup ordering, deterministic restart policy, crash-cause reporting, and file-watch driven rebuilds during development.

Usage

cargo run --bin krab_orchestrator

Or via the CLI, which builds first:

krab bootstrap

The orchestrator exits non-zero if krab.toml is missing or cannot be parsed, if the service graph has a cycle or an unknown dependency, or if a service fails its startup readiness probe.

Per-service stdout and stderr are captured to log files under internal/audit/orchestrator/, resolved relative to the working directory the orchestrator is started from. The directory is created automatically on startup (in the Krab framework repository that path is gitignored).

Supervision

Services start in dependency order and stop in reverse. A service that exits on its own is restarted according to [services.<name>.restart_policy], up to max_attempts within one unstable period; staying up for stability_window_ms (default 60 s) restores the budget, so max_attempts bounds a crash loop rather than a service's lifetime failures. Backoff is scheduled, not slept through, so one crashed service does not delay supervision of the others.

See service composition for the full key reference.

Configuration

Services are declared in krab.toml at the workspace root. See service composition for the topology model.

License

MIT