Architecture
How we run microVMs on bare metal.
"Will it scale, or am I migrating again?" is the right question to ask, because you've been burned on the answer before. Here is the foundation underneath Atlasflow, and why it doesn't run out from under you.
A kernel per workload, isolated in hardware
Containers share the host kernel. That's fine until it isn't: a shared kernel is a shared blast radius and a shared scheduler. Atlasflow runs each app in its own microVM with its own kernel, isolated in hardware by Cloud Hypervisor.
You get the security boundary of a virtual machine with the start-up speed and density of a container, and nothing your app can't run.
Bare metal we operate, not capacity resold
Your microVMs run on real machines in our racks, not on instances rented from a hyperscaler and marked up. We control the host, the network, and the placement, so there's no extra layer taking a cut of your performance or your bill.
Operating the metal ourselves is what lets us promise no noisy neighbor stealing your CPU: we place workloads, we cap them, and we keep headroom.
No cold starts
Serverless trades cold starts for elasticity. We don't make that trade. A microVM boots in a fraction of a second and then stays running, so the first request after a quiet period is as fast as the last one before it.
You still only pay by the second for the compute, memory, storage, and traffic you use, with no per-request fee and no rounded-up hour.
A control plane that reconciles to the state you declared
You declare the state you want; a control plane continuously reconciles reality to match it. New versions only take traffic once they pass health checks, so a broken release never reaches a user and a failed one rolls back without you. An instance that stops answering its probes is replaced before anyone notices.
Your data sits on ZFS-backed durable storage on the same hosts, so state survives the churn of deploys and replacements.
Scale by adding capacity, not re-architecting
You grow by placing more workloads on more metal, not by rewriting your app for a different runtime. There is no point where you've outgrown the platform and have to move to a hyperscaler.
The foundation you start on is the one built to hold under load: the right way to start and the way that scales are the same way.
The opinion is one sentence.
Use the boring, proven stack: containers, Postgres, S3-compatible storage, standard queues. We made the undifferentiated decisions so you don't re-make them on every project, and we left the irreversible ones to you. If it runs in a container on your laptop, it runs here unchanged, and the day you'd leave, you take the same standard artifacts anywhere.