From Scripts to Contracts
What Rust's type system taught me about infrastructure composition — RustLab 2026, Bologna
Jesús Pérez
The RustLab 2026 talk is about Provisioning: typed contracts over the whole composition, a formula DAG executed in parallel with rollback, providers as a pluggable interface — and the honest limits of the type-system analogy.
From Scripts to Contracts
RustLab 2026 · Bologna · room RustLab Deep Space · 3 November 2026, 12:15 · 45 minutes with Q&A.
▤ Read the slides — real text, not screenshots ▶ Interactive version (Slidev) ⇩ PDF
This talk is about Provisioning. It tells how the platform was rebuilt around one idea — infrastructure deserves the same type discipline as application code — and where that idea stops working.
What of Provisioning the talk shows
- Typed contracts over the composition. Not only each resource: the relationships between them. Every piece of infrastructure is a Nickel schema validated before runtime, and TOML or YAML is only generated from it.
- The formula DAG. A workspace is composed as a typed dependency graph — containerd before etcd, etcd before Kubernetes, Kubernetes before Cilium — and the orchestrator executes it in parallel where the graph allows, with checkpoints and rollback.
- Providers as an interface. A new cloud is an implementation of a contract, not a change to the platform’s core.
- Hard boundaries between services. Provider APIs only in the orchestrator, authorization only in the Control Center under Cedar, secrets only through the vault, and NATS JetStream as the single broker between them.
The arc
- The problem — infrastructure that fails silently.
- The idea — type the composition, not just the resources.
- The implementation — what Rust’s ownership model and trait system contribute, and where the analogy breaks.
- The honest limits — external state and cloud APIs don’t respect your type system.
With a live overview of a real cluster running on this stack. For intermediate Rust developers with some exposure to infrastructure or deployment; no prior knowledge of a specific IaC tool is needed.
Cover photo: Piazza Maggiore, Bologna — Max Nayman, Unsplash.
· reads