Deployment
Canyon runs in your infrastructure, not ours. Every agent runs in an isolated sandbox container. The platform itself deploys as a set of stateless services on Kubernetes, backed by managed databases and object storage — fully under your cloud account and your procurement controls.
Agent sandbox
The platform uses isolated sandbox containers for every agent run. A clean container per user session, no shared filesystem, no shared process space, no long-lived state between sessions. Agents talk to the control plane over a bidirectional streaming channel; the runtime abstraction means the same orchestrator code runs on local Docker for development and on managed Kubernetes in production.
┌─────────────────────────────────────────────────────────────────────────────────────────┐ │ AGENT SANDBOX │ │ ═══════════════════════════════════════════════════════════════════════════════════════│ │ │ │ CONTROL PLANE SANDBOX RUNTIME │ │ ───────────── ──────────────── │ │ ┌──────────────────────┐ ┌──────────────────────┐ │ │ │ Orchestrator │◄── bidi streaming ──►│ Agent runtime │ │ │ │ • Intent routing │ │ • Planner │ │ │ │ • Context assembly │ │ • Builder │ │ │ │ • Write-back │ │ • Validator │ │ │ └──────────────────────┘ │ • Live preview │ │ │ │ └──────────────────────┘ │ │ │ │ │ │ ┌───────┴───────┐ ┌───────┴───────┐ │ │ │ Runtime │ │ Preview URL │ │ │ │ abstraction │ │ (authenticated) │ │ │ └───────────────┘ └───────────────┘ │ │ │ │ │ ┌─────┴──────────────────┐ │ │ ▼ ▼ │ │ Local (Docker) Cloud (Kubernetes) │ └─────────────────────────────────────────────────────────────────────────────────────────┘
What the sandbox gets
- A clean workspace mounted at
/workspace, pre-seeded with the project repo. - Network egress policy scoped to the project’s declared dependencies.
- Short-lived credentials for any MCP server the project is authorised to use.
- A live preview URL, authenticated and visible only to the session owner.
Where Canyon runs
Canyon is delivered as a Kubernetes workload with managed database, cache and object storage backings. The topology is boring on purpose: the same bundle runs everywhere.
LLM gateway
Canyon’s orchestrator treats language models as a swappable backend. Pick the provider that fits your procurement: direct, through your enterprise LLM gateway, or on models hosted in your own cloud account with no static keys at all.
| Mode | How it’s wired | Use case |
|---|---|---|
| Direct provider | Provider API key injected at runtime. | Development, fast trials, single-provider shops. |
| LLM gateway | OpenAI-compatible gateway URL plus tenant credentials. | Production with your standard egress, SSO, and usage controls in front of every call. |
| In-cloud hosted | Models on AWS Bedrock, Azure OpenAI or GCP Vertex, authenticated via workload identity. | Regulated deployments where static keys are disallowed and data residency is enforced. |
Preview runtime
Generated code is served live inside the sandbox with hot reload. Sandboxes pool by thread, so a returning user lands on the same warm container. Idle timeouts keep resource usage bounded, and keepalives from the Console extend them while the user is active.
CreateFresh container, seeded workspace, dependencies installed.StartDev server up, authenticated preview URL issued.ActiveIdle timeout pending; keepalives from the Console extend the window.SleepContainer suspended but state retained; wake on next user action.DestroyOn session close or policy-driven cleanup; state is snapshotted to the checkpoint store.Production topology
A single multi-tenant Canyon deployment runs as a set of stateless services on Kubernetes, backed by managed PostgreSQL, a managed cache, and object storage for artefacts. Sandboxes run on their own node pool — spot instances by default, with a reserved on-demand pool for premium workloads. One cluster per region.
┌─────────────────────────────────────────────────────────────────────────────────────────┐ │ PRODUCTION DEPLOYMENT (example: AWS) │ │ ═══════════════════════════════════════════════════════════════════════════════════════│ │ Region of your choice │ │ │ │ VPC │ │ │ │ Public subnets (multi-AZ) Private subnets (multi-AZ) │ │ ┌─────────────────────┐ ┌─────────────────────┐ │ │ │ Load balancer │ │ Kubernetes cluster │ │ │ │ DNS + certs │──────────────│ │ │ │ │ │ │ Platform pods: │ │ │ └─────────────────────┘ │ • Orchestrator │ │ │ │ • Canyon Console │ │ │ │ • Semantic layer │ │ │ │ │ │ │ │ Sandbox nodes │ │ │ │ (spot + on-demand) │ │ │ └──────────┬──────────┘ │ │ │ │ │ ┌──────────┴──────────┐ │ │ │ Data layer │ │ │ │ • Managed PG │ │ │ │ • Managed cache │ │ │ │ • Object storage │ │ │ └─────────────────────┘ │ └─────────────────────────────────────────────────────────────────────────────────────────┘
Delivered as infrastructure-as-code
Canyon ships as declarative infrastructure modules that you review, plan and apply like any other workload. Cloud primitives, network, secrets, identity — all expressed as code, version-controlled, and aligned to your existing landing-zone conventions.