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
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.
Engine
In progressHybrid retrieval on object storage
Vector, full-text and sparse search fused in one planned query, over Lance and Tantivy in your bucket. Every write returns a token the next read can require.
- Qdrant REST and gRPC, Flight SQL and native REST today
- The Elasticsearch subset, SDKs and MCP are landing
- Graph expansion, Iceberg tables and a stream API with idempotent producers are planned
Loam Live
In progressA reactive database on TiKV
Every live query remembers the keys it read. When a commit touches one, subscribers get the new result, with no polling and no cache to invalidate.
- Transactions and read-set subscriptions on TiKV
- Server functions and a sync API over connect-rust
- A planned change feed into collections, so rows become searchable
Loam Durable
In progressDurable execution, built in
A Resonate server runs inside the Loam binary. Each step of a run is a durable promise, so a crashed agent resumes where it stopped and a long wait holds no process.
- Schedules, fan-out, sagas and human-in-the-loop
- Idempotent by id: a retry never starts a second run
- Planned: durable agents with memory in the same bucket
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.
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.
- 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
- EngineIn progressHybrid retrieval: vector, full text, sparse
- Loam LiveIn progressReactive database and server functions
- Loam DurableIn progressDurable execution on embedded Resonate
- FunctionsPlannedServerless, billed on CPU time
- JobsPlannedCelery, BullMQ, PySpark, Flink
- PostgresPlannedOn your bucket, under evaluation
change feeds from Live (and Postgres, if adopted) → collections, searchable
- wal/
- lance/
- splits/
- iceberg/
- durable/
- pageserver/
- 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 - 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 - 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.
Three flows, call by call. Each one is a trace: the request, then the state it leaves behind. Press play, or step through.
running, billed on CPU time waiting on a promise, not billed0 of 2 billed steps so far
promise.create research.42 +targetstate 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.
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 onceOnce resolved or rejected, its value never changes. A late duplicate gets the stored answer.
one-winnerOne worker per task versionWorkers can race for a task; exactly one acquires each version.
fencedStale workers are fencedVersions only move forward, so a worker that lost its lease cannot write.
same-idSame id, same promiseCreating 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.
Speak the APIs your stack already uses. The first release closes when the LangChain, LlamaIndex, BEIR and ADBC suites pass unmodified against Loam.
| Surface | Scope | Status | Reference |
|---|---|---|---|
| Native REST | Namespaces, streams, links, collections, documents, hybrid search, SQL | Available | Reference |
| Qdrant REST + gRPC | Collections, points, named dense and sparse vectors, the query API with fusion | Available | Reference |
| Arrow Flight SQL | SQL search table functions and zero-copy DoPut ingest, for any ADBC driver | Available | None yet |
| Elasticsearch subset | Document APIs, _bulk, _search with the core Query DSL, knn, hybrid + RRF | In progress | Reference |
| Live sync API | Reactive queries and mutations over Connect, with a TypeScript client | In progress | Reference |
| Resonate protocol | Durable promises, tasks and schedules for the Resonate SDKs | In progress | Reference |
| SDKs and MCP | Python and TypeScript SDKs, an MCP server for agents | In progress | None yet |
| Jobs API | Queues, leases, schedules and flows behind the Celery and BullMQ adapters | Planned | Reference |
| Postgres wire | Read collections and tables with psql and any Postgres driver | Planned | None yet |
Every reference is generated from an OpenAPI description and says which endpoints exist today. Start at the API reference index.
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
TodayOne 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 -- devLoam Cloud beta
Early accessA 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
LaterThe 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
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.0Everything 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
ManagedWhat 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.
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
Engineering notes. How Loam stores, commits, tests and searches data on object storage.
Loam: the AI-native cloud in your bucket
An AI application today runs five or six stateful systems. Loam puts retrieval, application data, durable workflows and jobs on one platform, with object storage as the ground it all stands on.
The engine: hybrid retrieval, streams, Iceberg and the wire APIsplatform8 min readThe engine: hybrid retrieval, streams, Iceberg and the wire APIs
How Loam's retrieval engine turns a bucket into vector, full-text and graph search behind the Qdrant, Elasticsearch and Flight SQL protocols, and where streams and Iceberg tables fit.
Loam Live: a reactive database on TiKVplatform9 min readLoam Live: a reactive database on TiKV
Queries that stay live and push new results, mutations that are transactions, server functions, a protobuf sync API, and a change feed that makes application data searchable. How it works, and what is built.
Get early access to the beta.
Create an account and an organization for the hosted beta, or build the engine from source today.