The sizes
Capacity, stated honestly. A small universe suits demos and small pilots, and its real
ceiling is usually the rate limits of the AI provider rather than the box. A medium
universe is sized for roughly 2,500 connected users and low hundreds of concurrent
executions. A large one is sized for roughly 10,000 connected users and one to two thousand
concurrent executions.
Treat those as planning figures. They are derived from comparable systems and adjusted for
a single engine instance, and they are not measurements of your workload.
Why large is not simply a bigger machine
The engine is one Node process with one event loop. Cores beyond about eight sit idle as far as it is concerned, and only serve the containers beside it. So the large tier spends its budget on memory, on bigger data stores, and on giving Spatial ML its own machine when embeddings grow. Large is the vertical ceiling. Past it the answer is engine work, not a bigger box. That work is session affinity across instances, and the connection budget in Data and State is its prerequisite.What is deliberately not offered
Being clear about this is worth more than a menu of tiers nobody has run. No multi-VM active/active. A universe runs one engine instance today. Two would need session affinity at the entry point and a session registry outside the process, and neither exists yet. Documents that promised 20,000-user active/active tiers were describing a plan, not a product, and they have been withdrawn. No Kubernetes or ECS. One VM with Docker Compose is the deployment. It is also the thing a customerβs operations team can read in an afternoon. No auth-off mode. Authentication is always on, because Canvas and Studio sign in against it. Letting anonymous visitors reach a workflow is a per-workflow decision made on the trigger, not a property of the deployment. No pipeline at POC tier. Provisioning isterraform apply and deployment is a CLI
command. Wiring those into CI is a decision a customer makes later, on their own terms.
Where the platform can grow
Two seams exist for real, and they are worth knowing about because they answer most βwhat ifβ questions in a review. The identity provider is a variable. Auth0 today, Entra or Cognito tomorrow, without a code change. See Provisioning. Postgres can be yours. An existing managed cluster, or a database somewhere else entirely. See Data and State.Running it on your own hardware
Nothing about the platform requires a cloud. The images run on a VM you already own, and the only things the cloud modules were providing are a TLS terminator, a Postgres, and a Redis. You bring your own entry point, which is the one place an on-premises deployment differs. The platform ships a requirement rather than a proxy: terminate TLS, forward to:4105, and
honour the settings in Networking. Any of nginx, HAProxy or
F5 does the job, and because the authentication gate is in the application, none of them is
load bearing.
Next: Provisioning with Terraform

