BLOG / Infrastructure /

Nodes, Zones, Resources

Nodes, Zones, Resources

The three primitives the ONZR platform is built on, and why we reduced an entire data centre to them.

#platform#orchestration#infrastructure#stealth

Every infrastructure product eventually invents a vocabulary. Most invent too much of one. We spent a long time arguing about ours and ended up with three words.

We are in stealth. This post describes the model, not the interface. Names, numbers, and dates that are still moving are left redacted (████) on purpose.

Node

A node is anything that can hold a workload and be told what to do: a rack server in your own hall, a blade in a colo cage, a virtual machine on someone else’s cloud, a container host at a branch office. If it has an address, a lifecycle, and capacity, it is a node.

The important part is what a node is not. It is not a hypervisor brand. It is not a licence tier. It is not a special class of machine you have to buy to make the platform work. Nodes join, drain, and leave. A single rack is a valid deployment. So is ████.

Zone

A zone is a blast radius you have decided to draw. A rack, a room, a building, a region, a customer site.

Zones are the unit of failure, latency, and jurisdiction all at once, which is why we refuse to split them into three different abstractions. When you tell the platform that data must stay in a zone, that is a sovereignty statement, a replication policy, and a scheduling constraint in one sentence. When a zone goes dark, everything that depended on it is already known.

Resource

A resource is the thing an operator actually asks for: compute, storage, address space, identity, a queue, a pipeline slot. Resources are declared, not clicked. They are attached to zones, satisfied by nodes, and reconciled continuously.

The loop is unremarkable and deliberately so:

desired  ← what you declared
observed ← what the fleet reports
reconcile(desired, observed) → actions

Every module in the lineup writes into the same inventory and reads from the same loop. That is the whole trick. There is no second control plane hiding behind the first one.

Why so few words

Because the alternative is what most of us have been living with: one console for virtualisation, another for storage, a third for identity, a spreadsheet for what actually exists, and a person who is the only one who knows how they relate.

Three primitives is a constraint we have to keep paying for. Every feature request arrives asking for a fourth. Almost none of them survive the question “is this a node, a zone, or a resource?”

What we are not saying yet

The scheduler. The consistency model across zones. The number of modules that already run on this in our own racks. Those posts are written; they are not published.

If you run your own infrastructure and want to be in the first group that sees it, get in touch.

// published June 1, 2026