Product
What installs where, and what each part can see.
Three components. Two of them run in our cloud and hold no model data. One runs on your machine and holds all of it. The rest of this page is the detail behind that sentence.
Whitepaper 04 · Operating model
Sovereign by Architecture
Owning the hardware is the easy half. This is what the operating model above it has to do, capacity allocation, governance, evidence, and how SovFleet implements it.
CIO, Head of Infrastructure, Head of Data Science, CISO · 15 minutes read
Component by component
| Component | Runs | Can see | Never sees | Network |
|---|---|---|---|---|
| Control plane | SovFleet cloud | Fleet inventory, model catalogue, quotas, metrics, audit log | Prompts, responses, weights, KV cache | Accepts the agent's outbound connection |
| Gateway | SovFleet cloud | API keys, request and response bodies in memory, token counts | Weights, KV cache; nothing written to disk | Accepts client HTTPS; reuses the agent's connection outbound |
| Node agent | Your machine | Everything on that host: weights, prompts, responses, KV cache | Other customers' anything. It is a single-tenant process | Outbound 443 only. No listener, no inbound rule |
| Engine (vLLM today) | Your machine | Weights, KV cache, the forward pass | Any network destination outside your host | Localhost only |
The request path
Four hops, two of them inside your network.
1
Client to gateway
Standard HTTPS to your subdomain. The request is an OpenAI-format chat completion; nothing about it is proprietary to us.
2
Gateway resolves and routes
The key resolves to a team. The team's quota is checked, the model name is resolved to a running deployment, and a node with a free sequence slot is chosen. If none is free, the request queues or is rejected according to your policy.
3
Gateway to node agent
Over the connection the agent opened outbound. There is no inbound listener on your side and nothing to allow through a firewall.
4
Agent to engine
Localhost to the engine process, vLLM today. Prefill, then decode. Tokens stream back along the same path, and the KV cache stays where it was built.
On latency
Installation
One binary, one token, one config file.
The agent is a single static binary. It needs a host with the NVIDIA driver and container runtime you already use, outbound 443, and a registry it can pull weights from. That registry can be yours. An internal mirror, an S3-compatible bucket, or a filesystem path where the weights already sit.
It does not need root beyond what your container runtime already requires, and it does not install a kernel module.
Install is three steps on each GPU host: pull the release, enrol it against your account with a token issued from the console, and start it as a system service. Every release is GPG-signed with published checksums, so you verify what you are running before it touches a host that holds your weights. We walk through the actual commands on the call rather than publish a copy-pasted script here.
gpu-node-03 · enrolled
- GPUs offered
- 0, 1, 2, 3
- Zone label
- dc-mum-1
- Compliance label
- pci
- Weights registry
- your S3-compatible mirror, not the public internet
- Egress allowed
- the control plane and your registry endpoint. Nothing else.
What one host looks like after enrolment. Every field here is something you set, not something we infer.
Placement
How a model ends up on a particular card.
You declare a deployment: a model, a precision, a context length, a target number of replicas, and which node labels it may land on. The control plane solves for placement using the same arithmetic the capacity calculator uses, weights first, then whether the remaining memory holds enough KV cache to be worth running.
Labels are how compliance boundaries get enforced in practice. A deployment marked compliance: pci is only ever placed on hosts carrying that label, and the scheduler will leave a GPU idle rather than violate it.
Tensor-parallel groups are placed on cards within a single host unless you explicitly allow otherwise, because cross-host TP over anything short of InfiniBand is usually a mistake.
deployment
int4-awqllama-3.1-70b
32k context · TP ×4 · 2 replicas
- Placement requires
- zone: dc-mum-1 · compliance: pci
- fraud-ml
- 48 reserved slots
- support-tools
- 24 reserved slots
- Overflow policy
- fair share
What one deployment declares. The scheduler reads this the same way it reads every other one.
Failure
What breaks, and what happens when it does.
Every security review asks this, so here it is unprompted.
A GPU node dies
In-flight requests on that node fail and are not retried automatically, because a partially streamed completion cannot be safely replayed. New requests route to the remaining replicas. If that drops you below your reserved slots, the affected teams are told which ones.
The control plane is unreachable
Running deployments keep serving. The agent holds its last known configuration and continues. What you lose is the ability to change anything: new deployments, quota edits and placement decisions all wait.
The gateway is unreachable
Requests fail. This is the honest answer and the sharpest edge in the current architecture: there is no direct client-to-agent path today. It is the same failure surface as any hosted API, and it is the main thing the customer-hosted gateway on the roadmap is meant to remove.
Your registry is unreachable
Already-loaded models keep serving from GPU memory. New model pulls fail with the registry error rather than a generic one, because a scheduling failure that does not name the cause is worse than useless.
A team exhausts its quota
Requests beyond the reservation queue or receive a 429 with a Retry-After, depending on the policy you set. Other teams are not affected. That is the point of the reservation.
The fleet is genuinely full
Requests queue by policy. Queue depth and wait time are recorded per team, which is the evidence you will need if the answer turns out to be more hardware.
Scope
What this does not do.
- It does not train or fine-tune. Serving only. Bring the weights you have.
- It does not supply GPUs. There is no marketplace and no burst-to-our-cloud option. If your fleet is full, it is full, and we will show you the evidence for that rather than sell you capacity.
- It does not write a custom inference engine.It supervises one, vLLM today, and the direction is toward the node agent treating the engine as a plugin rather than a fixed choice, so an engine like SGLang or TensorRT-LLM slots in the same way. That interface is not built yet. When today's engine ships a faster kernel you get it by upgrading, not by waiting for us to reimplement it.
- It is not a RAG framework, an agent framework, or a prompt manager. It terminates an OpenAI-compatible API and puts tokens on GPUs.
Walk through this with an engineer first
Twenty minutes, screen share, no install. If it holds up, the next step is the agent on one lab node, with your own tooling watching where the traffic goes.
An engineer replies within one working day. No qualification call before the technical one.