Case 03 · Flagship

Kanister Backup & Restore

Recovery Contract for Kubernetes: backups are restored, verified against measurable objectives, and marked PROVED or UNPROVED before an incident — not assumed after pg_dump succeeds.

01

How it works

From backup to a Recovery Contract.

Recovery Contract by Andrey Lesnikov — protect, validate, restore, and prove recoverability before the incident starts.

Architecture diagram: workloads, Kanister plane, object vault, Recovery Contract PROVED/UNPROVED
Recovery Contract plane: protect → validate → restore → prove.
Recovery Contract lifecycle: PROTECT, VALIDATE, RESTORE, PROVE with evidence card
Lifecycle — PROTECT → VALIDATE → RESTORE → PROVE
  1. 01

    Protect

    Application-aware backup via Kanister Blueprint — real pg_dump, object-store artifact, ActionSet evidence.

  2. 02

    Validate

    Prove artifact integrity (gzip / SQL head) before trusting the object — creation alone is not enough.

  3. 03

    Restore

    Isolated namespace drill with health checks and recovery markers — not a hope that PVC bytes were enough.

  4. 04

    Prove

    Evaluate the Recovery Contract. Verdict is PROVED or UNPROVED with RTO, RPO, and freshness — never a percentage score.

02

Evidence

From problem to proof.

How the system is framed, operated, and proven — not a slide deck summary.

01
Problem

A green backup job is not proof of recovery. Corrupted artifacts, wrong secrets, schema drift, and stale drills still leave you unready when production disappears.

02
Architecture

Kanister executes Blueprints and ActionSets. This layer adds PROTECT → VALIDATE → RESTORE → PROVE: a Recovery Contract with binary verdict, measured RTO/RPO, and optional failure drills.

03
Trade-offs

Continuous proof costs cluster time and design effort. The payoff is PROVED or UNPROVED with an explicit reason — not a decorative percentage.

04
Latest evidence

Multi-service contract: one recovery point covers Postgres + S3 objects, and PROVE requires both components restored plus cross-component consistency (checksums, bounded skew). recovery_point_skew_seconds_max is fail-closed (PR #23): skew above the ceiling, or missing/null skew on multi-service evidence, is UNPROVED with reason recovery_point_skew. Recovery Drill on kind: PROVED with RTO 8 s on k8s v1.37.0 and 8 s on v1.36.4 (ceilings RTO ≤ 60 s, skew ≤ 60 s; docs/results.md / docs/EVIDENCE.md); failure drills delete-s3-object, corrupt-s3-object and mismatched-recovery-points each end UNPROVED with a named reason (run 38131463362). Kind lab numbers, not production-scale RTO.

Constraints

Application-aware Kanister workflows, isolated drills, Recovery Contract clauses, and deliberate failure scenarios.

03

Related

Nearby systems.

Case 18

Self-Healing Infrastructure

  • Detect
  • Heal
  • Verify

Transient infrastructure failures can become user-facing incidents when recovery depends on manual detection

Common failures recover with guardrails

Case 05 · Flagship

BlastGuard

  • SBOM
  • Advisories
  • Sigstore

CVE scanners produce finding counts

Blast radius predicted before CVE count

04

FAQ

Questions operators ask.

What is a Recovery Contract?

A measurable prove of recoverability. Backup success is PROVED or UNPROVED against artifact integrity, isolated restore, application readiness, data verification, RTO, and evidence freshness.

Why not score recovery as a percentage?

Percentages invite fake precision. A binary contract with an explicit Reason is easier to operate and audit.

What is a failure drill?

make failure-drill SCENARIO=corrupt-artifact (and siblings) injects known failure modes so you can see UNPROVED with a clear blocked clause.

Available for meaningful infrastructure conversations

Build systems that stay calm under pressure.

Available for conversations

Talk infrastructure

Book a working session

Meet ↗

Evidence first

For deep dives

Explore the systems

All cases ↗