back

servatus

Plan, submit, and observe resumable Slurm campaigns, then atomically publish validated outputs.

Resumable Slurm campaigns and atomic publication.

// overview

Servatus is a zero-dependency Python library and CLI for resumable application work. Campaign keeps an append-only roster of opaque tasks and its durable attempt history, submits reviewed plans to Slurm through native OpenSSH and Apptainer, and observes their scheduler state. Workspace retains private checkpoints and atomically publishes application-validated outputs.

Resilience is concentrated at submission, observation, and POSIX publication. Durable intents and receipts prevent silent duplicate submission, retries require explicit operator choices, and no-replace commits prevent concurrent corruption or overwrite. Applications retain task meaning, result schemas, validation, and completion decisions behind an opaque result probe.

// how it works

Named profiles in SERVATUS.toml resolve a Slurm target and one homogeneous resource request. Planning collects scheduler and result evidence, packs eligible tasks into balanced single-node allocations with exact CPU, memory, and GPU totals, and binds the decision to a campaign revision and integrity digest; submission records intent before contacting Slurm and receipts after acceptance.

Inspection batches bounded squeue and sacct queries per original route, matches immutable allocation identities, and reports result readiness separately from quiescence. Workspace binds hidden state to an opaque identity, and drafts, file stages, and child workspaces commit through kernel no-replace renames that expose one absent-or-complete destination.

// capabilities

Profile-driven campaigns

Packs append-only task rosters into exact single-node allocations and runs them through OpenSSH, Slurm, and Apptainer.

Submission recovery

Records durable intents and receipts, reconciles ambiguous allocations by exact identity, and gates duplicate-risk retries.

Bounded observation

Inspects queue and accounting evidence, reads bounded task logs, and exports revision-bound campaign views as JSON.

Atomic publication

Retains resumable checkpoints and publishes directories, single files, and child results without partial or overwritten destinations.