alba-engine 0.2.0

Orchestration engine for Alba: scheduling, caching, affected runs, and watch mode
Documentation

Orchestration engine that schedules and runs beams.

alba-engine sits between the model and the machine: it takes the validated [alba_core::Project] the loader produced, extracts the union of the target beams' execution subgraphs, and runs it with bounded parallelism through an [alba_executors::Executor] — which it only ever sees as that trait, so a future docker or plugin executor drops in without this crate changing. See the scheduler module for the scheduling rules themselves.

Everything a caller needs is [run]: give it a project, [Targets], [RunOptions], the [Executors] to dispatch each beam's declared kind to, a channel to receive [RunEvent]s on, and a cancellation token, and it reports back a [RunSummary]. [watch] wraps that same call in a session that re-runs the target whenever the files its inputs declare change; see the session module for the loop's shape.