Loam is pre-alpha: the engine core runs today; Live and Durable are in progress. See the roadmap

Pre-alphaOpen source, Apache-2.0

The AI-native cloud in your bucket.

Search, a reactive database and durable execution on object storage. Your data stays in open formats in one bucket, TiKV keeps it transactional, and agent runs survive crashes and long waits. Functions and jobs are next.

$ cargo run --release -p operon -- dev

The platform

One bucket for everything an AI app keeps. Search, live state and durable runs share one object store and one metastore, instead of five clusters and the connectors between them.

ComingProposed in design documents. Not built yet.

Functions on CPU time

Waiting costs nothing: an await becomes a promise and the function stops. workerd and wasmtime for JS and Wasm, gVisor for containers, tenant secrets from AWS, Azure, GCP, Vault or Kubernetes.

Jobs on Loam

Celery with a new broker URL, BullMQ v6 with a new import, PySpark on Sail behind sc://, Flink SQL on RisingWave. Durable mode is opt-in with Resonate decorators.

Postgres on your bucket

Under evaluation: Postgres with its storage on RustFS, its changes feeding collections. A branch per agent workspace is an exploration, not a plan.

Self-hosted, GitOps

RustFS by default, TiKV through its operator, one Helm chart and a Loam Kubernetes operator.

How it works

Bedrock at the bottom, one binary on top. Clients speak protocols they already know. The services share TiKV for transactions and your bucket for everything at rest.

01 Speak
  • Native RESTAvailable
  • Arrow Flight SQLAvailable
  • Qdrant REST + gRPCAvailable
  • Elasticsearch subsetIn progress
  • Python and TS SDKsIn progress
  • MCPIn progress
  • Live sync APIIn progress
  • Resonate SDKsIn progress
  • Postgres wire, readPlanned
  • Dapr APIPlanned
02 Runone binary, per namespace
  • EngineIn progress
    Hybrid retrieval: vector, full text, sparse
  • Loam LiveIn progress
    Reactive database and server functions
  • Loam DurableIn progress
    Durable execution on embedded Resonate
  • FunctionsPlanned
    Serverless, billed on CPU time
  • JobsPlanned
    Celery, BullMQ, PySpark, Flink
  • PostgresPlanned
    On your bucket, under evaluation

change feeds from Live (and Postgres, if adopted) → collections, searchable

03 Coordinate
TiKVTransactions for Loam Live and the engine's metastore today; the control plane (orgs, keys, quotas, routing) and Durable state next.
04 Bedrock
Your bucketS3, RustFS, GCS or Azure. The only source of truth, in open formats.
  • wal/
  • lance/
  • splits/
  • iceberg/
  • durable/
  • pageserver/
Available In progress Planned Change feed
Inside the engineA log, two open formats and one manifest.
Your applicationSDK or RESTLoam computeHot tierNVMe cacheQuery plannerhybrid retrievalYour bucketwal/lance/splits/manifests/write, then tokenfetch segments
Write pathRead path
  1. 01 Write

    Durable before it returns

    The writer PUTs a WAL object, the metastore assigns dense offsets, and the write returns a consistency token: (stream, partition, offset).

    wal/standard/<node>/<ulid>.wal
  2. 02 Materialize

    Lance and Tantivy, built together

    The link worker writes a detached Lance version, a split and delete bitmaps, then manifest v+1. The CAS on the manifest pointer is the only commit point.

    manifests/<version>-<ulid>.pb
  3. 03 Read

    Read your own writes

    A query with a token reads the current manifest and merges the log tail it hasn't absorbed yet, so strong reads never wait for indexing.

    snapshot(v) ⊎ tail(applied, token]

Solid boxes are in the engine today or being built; dashed boxes are proposals. Compute is stateless: lose any node and no data is lost. The concepts guide covers the log, consistency tokens and the storage formats in depth.

Step by step

Three flows, call by call. Each one is a trace: the request, then the state it leaves behind. Press play, or step through.

AgentLoam DurableFunctionReviewer123456

running, billed on CPU time waiting on a promise, not billed0 of 2 billed steps so far

promise.create research.42 +target

state research.42 pending · task v0

The call is stored as a durable promise keyed by its id. Sending the same id again returns the same promise, so a retried request never starts a second run.

Step 1 of 6

The embedded Resonate server (SQLite and TiDB backends) and its in-process runtime are in the engine today and pass a linearizability check. The TiKV backend and durable agents are next. Billing on CPU time, so a suspended function costs nothing, belongs to the planned serverless runtime.

settles-onceA promise settles once

Once resolved or rejected, its value never changes. A late duplicate gets the stored answer.

one-winnerOne worker per task version

Workers can race for a task; exactly one acquires each version.

fencedStale workers are fenced

Versions only move forward, so a worker that lost its lease cannot write.

same-idSame id, same promise

Creating a promise that exists returns it, so retries are safe by construction.

These are properties of the Resonate protocol. Loam Durable runs a linearizability check against its embedded server.

APIs

Speak the APIs your stack already uses. The first release closes when the LangChain, LlamaIndex, BEIR and ADBC suites pass unmodified against Loam.

SurfaceScopeStatusReference
Native RESTNamespaces, streams, links, collections, documents, hybrid search, SQLAvailableReference
Qdrant REST + gRPCCollections, points, named dense and sparse vectors, the query API with fusionAvailableReference
Arrow Flight SQLSQL search table functions and zero-copy DoPut ingest, for any ADBC driverAvailableNone yet
Elasticsearch subsetDocument APIs, _bulk, _search with the core Query DSL, knn, hybrid + RRFIn progressReference
Live sync APIReactive queries and mutations over Connect, with a TypeScript clientIn progressReference
Resonate protocolDurable promises, tasks and schedules for the Resonate SDKsIn progressReference
SDKs and MCPPython and TypeScript SDKs, an MCP server for agentsIn progressNone yet
Jobs APIQueues, leases, schedules and flows behind the Celery and BullMQ adaptersPlannedReference
Postgres wireRead collections and tables with psql and any Postgres driverPlannedNone yet

Every reference is generated from an OpenAPI description and says which endpoints exist today. Start at the API reference index.

Deploy

Self-host it, or let us run it. The engine is Apache-2.0 with no vendor control plane, down to air-gapped networks. The cloud runs the same binary.

Self-host

Today

One operon binary with an embedded Raft metastore or TiKV, pointed at any S3, RustFS, GCS, Azure or local bucket.

  • No vendor control plane, no phone-home
  • On-prem and air-gapped
  • Planned: a Helm chart and a Loam operator for GitOps
cargo run --release -p operon -- dev

Loam Cloud beta

Early access

A hosted, multi-tenant Loam for prototypes and production apps, with organizations, API keys and simple monthly plans.

  • Scale-to-zero namespaces on S3
  • Opens once the first APIs and SDKs ship
  • Free tier for builders

BYOC

Later

The data plane runs in your VPC against your bucket; we operate it. Your data never leaves your cloud account.

  • Stateless agents in your Kubernetes
  • Follows production hardening and the cloud control plane
  • Same open formats, same APIs
Open source vs Loam Cloud

Self-host all of it, or let us run the fleet. Everything that runs your data is open source. The cloud adds the parts that only matter when you operate Loam for many tenants.

Open source

Apache-2.0

Everything you need to run Loam yourself, on your own bucket.

  • The engine and every wire API
  • Loam Live, the reactive database on TiKV, and the change-feed bridges
  • Durable execution with the embedded Resonate server
  • The jobs API and its Celery and BullMQ adapters
  • The runtime: the Rust Dapr server, workerd, wasmtime and gVisor
  • Namespaces, auth, OpenFGA and quota enforcement
  • Metrics and usage hooks
  • Audit events for admin, auth and data access, with an audit query API and CLI
  • OIDC single sign-on; SAML through your own IdP broker, such as Keycloak
  • Helm charts, the Kubernetes operator and the GitOps layout
  • SDKs, the CLI and the engine design documents

Loam Cloud

Managed

What the managed service adds, so you never operate the fleet.

  • Metering and billing
  • Multi-tenant provisioning and plans
  • Fleet and multi-region operations, with autoscaling
  • Hosted Postgres fleet automation, if the evaluation succeeds
  • BYOC management in your cloud account
  • Abuse prevention, trust and safety
  • A hosted audit UI, long tamper-evident retention, SIEM export and compliance reports
  • SCIM provisioning and enforced org-wide SSO
  • The cloud console

This is where each piece will live, not what ships today: much of it is in progress or planned. The roadmap has the status of each.

Roadmap

The engine first, the cloud around it. What runs now, what is being built next, and what is designed for later.

Now

Available
  • FoundationEngine
  • Collection storageEngine
  • Query engineEngine
  • Hot tier and routingEngine
  • Qdrant APIEngine

Next

In progress
  • Elasticsearch subsetEngine
  • SDKs and MCPEngine
  • TiKV metastore and the reactive coreLoam Live
  • Embedded ResonateLoam Durable

Later

Planned
  • Conformance gates and the Loam renameEngine
  • v1.0: production hardeningEngine
  • v1.1: cloud and BYOCEngine
  • GraphEngine
  • AnalyticsEngine
  • Streams and scaleEngine
  • Router and point-in-time restoreLoam Live
  • Collections bridgeLoam Live
  • Helm and BYOCLoam Live
  • TiKV backend and tenancyLoam Durable
  • Durable agentsLoam Durable
  • connect-rust transportLoam Durable
  • Postgres wireProposed, in design
  • Loam Functions: serverless on CPU timeProposed, in design
  • Jobs on LoamProposed, in design
  • Postgres on your bucket (under evaluation)Proposed, in design
  • Self-hosted, with GitOpsProposed, in design
  • Loam CommonsProposed, in design
From the blog

Engineering notes. How Loam stores, commits, tests and searches data on object storage.

Get early access to the beta.

Create an account and an organization for the hosted beta, or build the engine from source today.