control plane ? config ? load balancer ? gateway · queue ? identity ? firewall firewall, at the edge ? the work every layer, guessing at the work from outside the work says what it is for — and the guessing stops
control plane ? config ? load balancer ? gateway · queue ? identity ? firewall firewall, at the edge ? the work every layer, guessing at the work from outside the work says what it is for — and the guessing stops

Axis  ·  start here

a pile of servicesSemantic infrastructure

Every box in the stack exists to guess something the work never said.

Open any cloud console and you see the same boxes: compute, storage, a database, queues, load balancers, firewalls, identity, the thing that keeps it all running, and the code that describes it.

Here is each of them, stripped to what it is actually for — what changes when the work carries its own meaning — and which part of axStack is building it. Most of it is designed, not built, and each box says which.

guessed from outside → said by the work → fewer boxes

Why the boxes exist

A modern cloud stack is a pile of services that do not trust each other, and have no way to.

The code you hand them says nothing about what it is for or what it is allowed to touch. So every layer has to work it out again, from the outside. A firewall guesses from ports and addresses. An identity policy guesses from a document somebody wrote. A load balancer guesses from health checks. Terraform guesses from a state file, which is wrong as soon as anyone touches the console.

Each of those guesses is a product, a team and an outage waiting to happen. Most of the stack is the same missing fact, worked out again and again in different ways.

The question here is the one from strip it to what's load-bearing, asked of each box: what is it actually for? And what is left of it if the work tells you that itself?

today: every box guesses firewall ports? identity policy? load balancer health check? gateway, queue well-formed? control plane drifted? terraform state file? the work: says nothing machines, networks, disks here: the work says it firewall at the edge identity load balancer gateway, queue control plane terraform the work what it is for · what it may touch machines, networks, disks
today: every box guesses firewall ports? identity policy? load balancer health check? gateway, queue well-formed? control plane drifted? terraform state file? the work: says nothing machines, networks, disks here: the work says it firewall identity load balancer gateway, queue control plane terraform the work what it is for · what it may touch machines, networks, disks
Today every box around the work has to guess what it is for. Here the work says it itself, and most of the boxes thin to a line — a few firewalls at the edge and the machines remain.

Compute

TODAYmachineimageOSdatawork lives inside a fenceHEREjobjobdatajust the work, no machine
Work moves; the machine does not.

Today. You rent a machine or a container, ship it an image with half an operating system inside, and fence it in — because the code inside could do anything.

What it is for. Running the work, close to the data it needs.

What changes. Code that can only do what it declared needs no fence. The unit stops being a machine or an image and becomes the piece of work itself: nothing to install, nothing pinned to one machine, nothing to keep in sync between copies. Work goes wherever there is capacity and the data is, and a second copy is free to run, because nothing it does can collide.

In axStack. axHost runs it, on top of Linux first; axCompute spreads it across machines. Designed.

Storage

TODAYbucket Areport.pdfcopybucket Breport.pdfcopybucket Creport.pdfcopythree copies, three placesHERE#a41f5 shards, encryptedone name, spread out
Three copies to keep track of become one name for the content.

Today. Files and objects kept by where they are — a bucket, a path, a disk — with copies everywhere and backups of the copies.

What it is for. Keeping things, and finding them again.

What changes. Things are kept by what they are. The same thing is stored once and recognised everywhere, so duplicates were never two things in the first place. Nothing is overwritten, so nothing can be left half-written. And it can be encrypted and spread across many places, so holding one disk gets nobody anything.

In axStack. axStorage. Sketched.

Database

TODAYappjournaltablewritten twicemigrate!HEREv3 (now)v2v1writeappend only: last Tuesday = lookup
Write once and keep every version; "last Tuesday" becomes a lookup.

Today. Every write is done twice — once into a journal, then for real — so that a crash halfway does not leave things broken. And every change to the shape of the data is a migration someone has to plan.

What it is for. Answering questions about what is true, and what was true.

What changes. A write that never overwrites anything has no halfway to protect, so the journal loses its job. Old versions are still there, so "what did this say last Tuesday" is a lookup, not a restore.

In axStack. axVerity. Building — and the furthest along of anything here: written in the language, it already runs, and ordinary database tools can connect to it.

Comms

TODAYAgatequeuemeshBpack then unpack, again and againHEREABfingerprint #7c2edirect, and checkable
Skip the pack-and-unpack relay: A talks straight to B.

Today. Every hop — gateway, queue, service, service mesh — packs the message up, sends it, and unpacks it again. A gateway checks the request is well-formed; a mesh adds retries and hopes they are safe.

What it is for. Getting a meaning from here to there, intact.

What changes. The message travels as what it means, all the way, so there is no packing and unpacking at every step. If the far end already has something, a tiny fingerprint of it is sent instead of the whole thing. A request to something that does not exist cannot be written, so a whole class of "malformed request" never reaches the wire. Encryption is not reinvented — the well-proven kind sits underneath, and the meaning rides on top.

In axStack. axComms. Designed.

Load balancers

TODAYLBsrvsrvsrv?blind: which one is slow?HEREschedulerrunrunanswersame work twice, first wins
The scheduler runs the work twice and the first answer wins.

Today. Traffic is spread across servers the balancer cannot see inside. Health checks guess which ones are fine. Retries are only safe if somebody made them safe, by hand.

What it is for. Getting each piece of work done by whoever can do it.

What changes. Work that only works something out is safe to retry, safe to run twice and take the first answer, and safe to move. So the balancer stops being a router of packets and becomes a scheduler of work: it decides where each piece runs, and how many times.

In axStack. Part of axHost and axCompute. Designed.

Firewalls

TODAYsvc Asvc Bsvc Csvc Deverything can reach everythingHEREsvc Asvc Bsvc Csvc Donly what you declare
Walls around everything become two declared connections.

Today. Thousands of rules about ports and addresses, between every service and every other, because anything that can reach a port might be hostile.

What it is for. Stopping code from doing things it should not.

What changes. Code can only reach what it declared, and the list is known before it runs. The rules between services have nothing left to guard. Firewalls do not vanish — a few plain ones still stand at the edge, around the runtime and the storage — but the spaghetti inside goes.

In axStack. The declared list is the registry, which is built. Enforcing it at the edge of a running system is axHost. Designed.

Identity

TODAYpasswordserviceshared secretanyone with it gets inHEREmay reachA, BABthe list is the key
A shared password becomes a permission list you carry.

Today. Permission policies written by hand, which everyone hopes are least-privilege and nobody can prove are. Keys and passwords — shared secrets — that leak, because shared secrets do.

What it is for. Deciding who and what may do which things.

What changes. What a piece of work may do is what it declared, so the least-privilege list is not hoped for — it is printed, before it runs. Instead of a shared secret you hold a permission, which cannot be phished out of you the way a password can.

In axStack. The capability list comes from the registry (built). Passwordless identity on top of it is designed.

Control plane

TODAYasked foractualcompare, correct, repeatHEREdeclaredtruesay it once
Instead of a loop that keeps checking, you declare it once.

Today. Something like Kubernetes compares what you asked for with what is actually running, and nudges one towards the other, forever — because what is actually running keeps drifting.

What it is for. Keeping what runs matching what you meant.

What changes. Nothing changes in place, so there is no "actual state" to wander away from what you asked for. Starting something becomes looking up what it needs, not replaying a sequence of steps that can fail halfway. There is much less left to reconcile.

In axStack. axHost, then axOS as the boundary is pushed down below Linux. Designed.

Terraform

TODAYplanstate fileconsolewhich one is true?HEREv1v2v3exact diff at each step
A plan, a stale state file and a console become exact diffs between versions.

Today. A plan of steps, run against a state file that goes stale whenever someone clicks in the console. Apply in order, hope nothing fails halfway, and find out about drift later.

What it is for. Saying what should exist.

What changes. You say what it is for, once. A change is a new version, and the old one is still there to go back to. What changed between two versions is exactly computable, not a guess from a plan. And there is no state file to drift, because nothing is changing behind your back for it to lose track of.

In axStack. Written in the language itself (built), kept in axVerity (building). Describing whole systems in it is designed.

Watching it run

TODAY?guessing from log linesHEREinputsrunanswerreplay any time
Rather than guessing from log lines, replay the run and read the answer.

Today. Logs as lines of text, traces stitched across services, dashboards — and tools to guess the meaning back out of all of it.

What it is for. Knowing what happened, and why.

What changes. Every run can be replayed exactly, with the same inputs. "Why was this flagged?" points straight at what it was decided from. You debug by running it again, not by reading the tea leaves.

In axStack. Comes with the runtime in axHost. Designed.

Out of the data centre

The same boxes turn up wherever software meets the physical world — and there the guesses are not just expensive, they are dangerous.

Robots and sensors

TODAYdeviceserveranything yet?asks again and againHEREdeviceserverzzzwake upwaits, then is woken
A device that waits to be woken beats one that keeps asking.

Today. A device asks "has anything happened yet?" thousands of times a second, and almost every answer is no. That asking is where most of the battery goes, and it still adds delay.

What it is for. Noticing when something happens, and acting on it.

What changes. The device says what it is waiting for, and is woken when it is true. Less delay and less power — normally you have to trade one for the other.

A self-driving car

TODAYsensorsguessactalways acts, even unsureHEREsensorsknown?actholdunknownknown
Act on what it knows and hold on what it does not.

Today. Nearly every serious failure of a self-driving system is one that was confidently wrong: it did not know, and it acted anyway.

What it is for. Getting there safely — which includes knowing when you do not know.

What changes. "I don't know" is a real answer with a defined response — slow down, hold, hand back to the driver — not a confident guess. A controller built on that never acts while it does not know.

In axStack. axAporia, the self-driving controller that never acts during an unknown. Designed; the specification is written. Robotics without the asking loop: designed.

What is left

Not nothing. You still need machines, networks, disks and power. You still need a few firewalls at the edge, and well-proven encryption underneath. The hard parts — doing many things at once, talking to devices, other people's code — do not disappear. They move to one place, the bridge, where they are solved once instead of in every service.

And none of it needs a flag day. It runs on top of the machines and operating systems you already have, and reaches existing software through the bridge, so it can start in one corner and grow.

What goes is the guessing: the layers whose whole job was to work out, from the outside, something the work could simply have said.

axStack: what is being built

axStack is the name for all of it — the pieces above, built on one foundation, in one order.

The foundation — built. The language, the bridge, and the registry of everything the bridge can do. This is what every box above stands on, and it runs today.

Storage — building. axVerity, the database. It runs, and ordinary database tools can connect to it.

Making code — building. axAI: given a requirement, search the known list for a program that passes its tests, rather than guess one.

Running it — designed. axHost on top of Linux, then axOS underneath. This is where compute, load balancing, the control plane and the firewall's job end up.

Talking — designed. axComms.

Spreading out — sketched. axStorage and axCompute, across many machines.

The surface — designed. axDisplay: the same running thing, shown properly on whatever screen you are in front of.

The first proof is small on purpose: the stack starts up and shows a live page through its own screen. Everything after that is box by box.

axStack takes over status axDisplay the surface: any screen designed axStorage · axCompute storage, and spreading out sketched axComms comms designed axHost / axOS compute, load balancing, control plane, firewalls designed axAI making code building axVerity the database building the foundation the language · the bridge · the registry what every box stands on built built being built designed sketched
axStack, from the ground up axDisplay designed the surface: any screen axStorage · axCompute sketched storage, and spreading out axComms designed comms axHost / axOS designed compute, load balancing, control plane, firewalls axAI building making code axVerity building the database the foundation built the language, bridge and registry what every box stands on built being built designed sketched
axStack from the ground up: the foundation is built and runs, the database and the code-maker are being built, and everything above is designed. Each layer is marked with the cloud boxes it takes over.

Underneath it

where it started

The language

One where you write down what you mean, and the computer works out the steps. The first piece of semantic infrastructure being built.

read it

the toy

par

Doing several things at once, with one word. A switch you can flip to watch the difference.

try it