On this page
Updated 2026-10-19: no open core
Loams is now fully open source (D1119). The open-core line this post describes is gone: metering, billing, the hosted control plane and the commercial APIs are moving into the open repo now, under Apache-2.0. Ostrium Labs sells services (infrastructure efficiency reviews, SLAs, support; support@ostriumlabs.org), not a paid edition. The table below is kept as the history of the September line.
Updated 2026-10-18 for Loams 0.1.0
Changed: 0.1.0 self-hosts with Docker Compose over your own Tailscale tailnet (GitOps is still planned); the multi-tenant BYOC control plane became open source (D540); the edge is our own loams-gateway, not Envoy (D1010); TiDB returns as Loams SQL compute (D721); the boundary table says "usage".
Proposal The deployment design in this post is under review, and Self-hosting with GitOps is still Planned in Loams 0.1.0. What 0.1.0 ships instead is a Docker Compose stack (deploy/release/compose.yaml) that you run on a laptop or on your own VMs (BYOC over SSH with byoc/install.sh), reachable only over your own Tailscale tailnet, with the hosted console at console.loams.dev. Running Loams 0.1.0 has the steps. The open-source boundary at the end has changed since this post; see below.
A platform that lives in your bucket should also be deployable in your cluster, by you, without calling us. The goal is one deployment path: the same Git repository and charts deploy a laptop k3d cluster, a self-hosted cluster on your own hardware, and a multi-tenant BYOC deployment.
The pieces
| Layer | Component | License | Why this one |
|---|---|---|---|
| Object store | RustFS | Apache-2.0 | S3-compatible, written in Rust, with the conditional writes Loams’ commit protocol needs. It replaced MinIO, whose community edition went into maintenance mode and was archived. Any S3, GCS or Azure store works as a provider instead |
| Metadata and Live | TiKV and PD, deployed by TiDB Operator v2 | Apache-2.0 | v2 models a cluster as separate component groups, so a cluster of PD and TiKV only, with no TiDB, is a supported shape. Since D721, TiDB returns as the compute of Loams SQL only, one keyspace per database |
| Durable execution | Resonate server | Apache-2.0 | Embedded in dev; its own Deployment on the TiKV store in clusters |
| Edge | Envoy as proposed; now loams-gateway | Apache-2.0 | TLS, HTTP/3, gRPC routing, rate limits, external authorization. D1010 (2026-10-16) chose to build one Rust gateway with a module per protocol, Postgres SNI first, instead of adding Envoy or Traefik |
| Loams | The engine roles, the Live role, the runtime tiers | Apache-2.0 | — |
| Operator | A Loams Kubernetes operator | MIT (fork) and Apache-2.0 | See below |
| GitOps | Argo CD | Apache-2.0 | Sync waves, custom health checks for CRDs, and one control plane for many clusters |
The Loams operator
The proposal forks Clever Cloud's Kubernetes operator (MIT, Rust, kube-rs) as the skeleton of a Loams operator, keeping its MIT notice. What carries over is modest and we say so: a controller registry, finalizers, event recording, a metrics server and a hardened Helm chart, about 1,300 lines. Its own custom resources provision Clever Cloud add-ons through Clever's API, so they are dropped. The operator adds four resources:
| Resource | Reconciles |
|---|---|
Loams | A Loams cluster: its roles as StatefulSets or Deployments, the metastore's PD endpoints, the bucket, the Resonate endpoint |
ObjectStore | A bucket and credentials from a provider: RustFS by default, any S3, or Clever Cloud's Cellar |
Function | A function version for the runtime: contract, tier, bundle digest, routes, limits |
RuntimePool | Per-node capacity for the runtime tiers and their RuntimeClass |
Object stores sit behind a provider trait that reports capabilities, and Loams refuses a provider without conditional writes, because the write-ahead log's commit protocol depends on them.
We also evaluated Clever Cloud's edge proxy, Sōzu. It is well engineered and reconfigures without restarts, but it is AGPL-3.0 and, as far as its documentation shows, has neither HTTP/3 nor gRPC routes, both of which the runtime needs. Envoy stayed the edge at the time; D1010 later replaced it with loams-gateway. The same evaluation proposes Biscuit (Apache-2.0, now at the Eclipse Foundation, started at Clever Cloud) for sandbox tokens inside the runtime (part 5).
Sync waves
Argo CD would apply an app-of-apps in waves. Each wave waits for the previous one to be healthy, which needs custom health checks for the child Application resources (Argo CD has none built in), the TiDB Operator's resources and Loams’ own.
- 01CRDs and operatorsTiDB Operator v2, the Loams operator, the gVisor RuntimeClass
- 02Object storeRustFS and the system buckets
- 03PD and TiKVAPI v2 on, no TiDB; health from the operator
- 04ResonateThe durable server on the TiKV store
- 05EdgeThe Rust gateway (Envoy in the original proposal), the Dapr API server
- 06LoamsThe Loams resource and its roles
- 07RuntimeThe node supervisor, workerd and wasmtime tiers
deploy/
helm/loams-stack/ # umbrella chart; every component can be switched off
gitops/
bootstrap/argocd/ # Argo CD and its health checks
root.yaml # the app-of-apps
apps/ # one Application per wave
envs/{dev-k3d,selfhosted,cloud}/values.yamlThe costs, plainly: Argo CD is heavier than Flux (an application controller, a repo server, Redis and a server), which matters on a laptop and in small clusters, and TiDB Operator v2's resources are still v1alpha1, so each Loams release pins an operator version. A local k3d profile runs one replica of everything; PD, TiKV and TiDB together peaked at about 3.2 GB of memory in our development playground.
What stays true without Kubernetes
The engine is still one binary. loams dev runs every role in one process with the openraft metastore and a local directory or any S3 bucket, and needs no TiKV; since this post, Loams Live there runs on an embedded store too. TiKV becomes necessary for Loams Live in clusters, for Loams SQL, for jobs and for clusters that use the TiKV metastore. The 0.1.0 compose stack runs PD, TiKV and TiDB for you, and loams upgrade moves it from one release to the next with a snapshot first.
Open source and the managed cloud (superseded)
Update: D540 (2026-10-02) moved the multi-tenant BYOC control plane (orgs, namespaces, isolation, quota enforcement, GitOps with Argo CD, BYOC install) into the open repository under Apache-2.0. Then, on 2026-10-19, D1119 removed the open core altogether: turning usage into charges and the commercial APIs are open source too, and nothing is proprietary. For 0.1.0 we host only the console and, for oidc mode, the auth service. The table below is the September line, kept for the record.
The line was one rule: anything needed to self-host Loams as a single organisation is open source, under Apache-2.0. Anything needed only to run Loams as a multi-tenant paid cloud is part of the managed Loams Cloud. The open repository must never depend on the managed cloud; the cloud consumes the same hooks and APIs any self-hoster can use.
| Open source | Managed Loams Cloud only |
|---|---|
| The engine: retrieval, streams, Iceberg analytics and every wire API | Turning usage into charges |
| Loams Live, the TiKV metastore, the change-feed bridges | The multi-tenant control plane: provisioning, plans, entitlements |
| The embedded Resonate server, durable patterns, the jobs API and adapters | Setting quotas per plan |
| The runtime: the Dapr API server, workerd and wasmtime hosting, gVisor, secrets | Fleet and multi-region operations, autoscaling policy, pre-warming |
| Namespaces, OIDC and API-key auth, OpenFGA checks, enforcing quotas | Hosted Postgres fleet automation, BYOC management |
| Metrics, OTel, cgroup labels, access logs: every usage hook | Abuse, trust and safety; support tooling |
| The Helm chart, the operator, the Argo CD layout, RustFS defaults, backup and restore | The multi-tenant console |
| SDKs, the CLI, generated clients, the design docs |
Quotas show the split well: the engine enforces whatever limits it is given; the managed cloud decides what those limits are for each plan. And we do not hold back reliability or performance features from open source. The hot tier is in the open engine today, and the planned replicated write-ahead log will be too, not behind a license key. Since D1119 there is nothing left to hold back: SSO, SCIM and the managed cloud's own code are open source as well.
Where this stands
| Part | Status |
|---|---|
| Single binary: dev, standalone and cluster modes | Available |
| TiKV development playground configs | Available |
Docker Compose stack over your own tailnet, BYOC over SSH, loams upgrade | Available |
| Any S3, GCS or Azure bucket (RustFS, MinIO and R2 included) or a local directory as the store | Available |
| Headscale networks | Planned |
| The umbrella chart, the Loams operator, Argo CD layout, TiKV through TiDB Operator v2 | Planned |
| Continuous backup of TiKV keyspaces to the bucket, restore (0.1.0 snapshots before each upgrade) | Planned |
| The open-source boundary, amended by D540 | Approved policy |
That is the end of the platform series. The other series on this blog, What Loams is built on, takes each open-source project under Loams in turn: what it is, how it works inside, why we chose it, exactly how we use it, its license and its current limits.