Deployment models
These docs assume a gateway is already deployed. This page explains the shapes it can take, for context when you operate it.
Hybrid vs. fully self-hosted
Section titled “Hybrid vs. fully self-hosted”- Fully self‑hosted — you run the control plane, data planes, database, and cache entirely within your boundary. Nothing leaves your infrastructure.
- Hybrid — the data plane (and private‑route context) runs in your environment, close to your private upstreams, while sharing a control surface.
environment_idis the gateway execution boundary in both cases.
A self‑hosted gateway starts with one configured tenant and a default environment (commonly tenant_local / prod).
Default stack
Section titled “Default stack”| Layer | Default |
|---|---|
| Control plane & data plane | Rust |
| Policy | Cedar |
| Durable truth & audit metadata | PostgreSQL |
| Hot session / cache state | Valkey |
| Eventing | PostgreSQL outbox / internal queue |
| Observability | OpenTelemetry (customer‑controlled) |
| Packaging & supply chain | Kubernetes + Helm + Cosign + SBOM |
| CLI & diagnostics | Go (gatewayctl) |
Bootstrapping
Section titled “Bootstrapping”A fresh self‑hosted deployment is initialized with the CLI:
gatewayctl bootstrap-self-hosted --helpgatewayctl bootstrap-admin --email you@example.comThen verify health with Check deployment status.
Type set in Geist, Source Serif 4, and Departure Mono.