How Loams works
A one-page tour of Loams, and where to read next for app developers, data engineers, platform teams and agent builders.
Loams is an open-source data and execution platform for AI applications, built in Rust. Search, live data, durable workflows, graphs, analytics and SQL share one design: your bucket holds every durable byte, an ordered log carries every change, and compute holds nothing it cannot rebuild. This page walks through that design once, end to end. Every idea links to a page that explains it properly.
Three ideas carry everything
- The bucket is the source of truth. Documents, vectors, indexes, tables and the log itself live in object storage you own, in open formats. A cold namespace costs only its bytes. Read more.
- The log is the spine. Every write is appended to an ordered log before anything else happens. Collections, tables and graphs are materializations of that log, so they can always be rebuilt from it. Read more.
- Compute is stateless. A node holds caches and in-flight work, nothing more. Nodes start fast, scale out freely and can fail without losing data. Read more.
A write, end to end
When your application writes a document, the request reaches a gateway, which appends it to the log. Once the log entry is durable, the write is acknowledged with a consistency token. In the background, a link applies the record to its collection and publishes a new manifest, which ties a Lance dataset version to its Tantivy text-index splits in the bucket.
Read the write path, collections and manifests and consistency tokens.
A read, end to end
A query names what it wants: a vector, keywords, sparse terms, filters, or any mix of them. The planner runs each retrieval signal over the current manifest and fuses the results into one ranking (hybrid retrieval). If the query carries a consistency token, the read also merges the log's not-yet-indexed tail, so it sees every write that token covers.
The data itself is served from the fastest tier that has it. RAM and local NVMe caches sit in front of the bucket and fill on demand; losing them costs speed, never data.
Read the read path and the hot tier.
Where metadata lives
Data goes to the bucket, but small, hot, transactional state (which manifest is current, which node owns what) needs a consistent store. A single node uses an embedded Raft metastore; larger deployments can opt into TiKV, which also backs Loams Live, Loams SQL and other transactional products. See metadata and TiKV and cluster mode.
One platform, several products
The same storage, log and metadata layers carry every Loams product. Each badge says how far along it is in the current release: Available ships today, Experimental is built but behind a feature flag or may change more, Planned is designed but not built.
| Product | What it is | Status |
|---|---|---|
| Loams Engine | Hybrid retrieval: vectors, BM25, sparse and filters in one query | Available |
| Loams Live | A reactive database with transactions and live queries | Available |
| Loams Durable | Durable execution for agent runs and workflows | Experimental |
| Loams Graph | An embedded graph engine with GQL | Experimental |
| Loams House | ClickHouse-compatible analytics | Experimental |
| Loams SQL | MySQL-compatible SQL on TiKV keyspaces | Experimental |
| Loams Postgres | Serverless Postgres on object storage | Experimental |
| Desktop and CLI | The loams binary, the CLI and the desktop app | Experimental |
| SDKs | Client libraries in 13 languages | Experimental |
| Loams Studio | An agent development environment | Planned |
| Loams Git | Git repositories in your bucket | Planned |
How transactional and analytical work share the same data is its own topic: OLTP, OLAP and HTAP.
Reading paths
Pick the path that matches what you are building. Each one is a few pages, in order.
App developers
You want search, live data or SQL behind an application, with the least to operate.
- The bucket is the source of truth
- Hybrid retrieval
- Consistency tokens
- Loams Engine and Loams Live
- SDKs, then the quickstart
- The developer guide: install, run locally, first collection, then your language's SDK
Data engineers
You care about formats, pipelines and what else can read the data.
- The log is the spine
- Open formats
- Collections and manifests
- OLTP, OLAP and HTAP
- Loams House and Loams SQL
Platform and infrastructure teams
You will run Loams, size it and keep it safe.
- Architecture overview
- Stateless compute and the hot tier
- Metadata and TiKV
- Cluster mode
- Namespaces and tenancy and the security model
- Self-hosting over Tailscale: the 0.1.0 stack on your laptop or VM, reachable only over your tailnet
Agent builders
You need memory, tools and runs that survive failure.
- Hybrid retrieval
- Loams Graph, for agent memory
- Loams Durable, for runs that resume
- Loams Live, for state that pushes updates
- Loams Studio and Desktop and CLI
Why it is built this way
Every part of this design is a decision with alternatives we turned down. The decisions page lists them and what each one rules. The full engineering design documents are in the engine repository.