# The control plane a sovereign cloud needs, written as pure functions

> On main since rc2: The control plane a sovereign cloud needs, written as pure functions.

Source: https://kern-lang.eu/releases/sovereign-cloud-control-plane

On main since rc2

## Release notes

Four modules landed that turn kern from a language you deploy _onto_ a cloud into one you can build a cloud _out of_, and they share a design decision worth naming. `net.s3_server` answers the S3 API that `net.s3` calls, with buckets and keys validated against traversal and objects stored flat so a request can never escape the root. `net.lb` is the backend-selection brain: round-robin, least-connections and weighted strategies over an immutable pool, where marking a backend unhealthy gates it out and an all-down pool fails fast rather than dialling a dead host. `sys.volume` is a block-volume catalog with the safety invariants written into the state machine: a volume is attached to at most one instance, an attached volume cannot be deleted, a snapshot records its parent, and a base volume with live snapshots is protected. `sys.fleet` is the self-healing loop, diffing the fleet you asked for against the fleet you have and returning the ordered actions to close the gap, including restarting an instance whose heartbeat has gone stale.

### The shared decision: every one of these cores is pure and deterministic

Selection returns the advanced pool rather than mutating one, an illegal volume transition comes back as data rather than crashing a live host, and reconciliation is a function from desired and observed state to a list of actions. That means the logic is unit-testable without a socket, a disk or a running fleet, which is the difference between a control plane you can reason about and one you can only watch.
