Should I use Strata?

Introduction to StrataDB explains what Strata is. This page is the other half: where it fits, where it does not, and which of the limits are deliberate rather than unfinished.

A research preview that only told you what it was good at would not be worth trusting, so the second table is the longer one.

Where it fits

Requirement Fit
An embedded database inside your application Excellent
Branchable application or agent state Excellent, and close to unique
Key-value, documents, events, vectors and a graph in one place Excellent
Reading any past version of your data Excellent
Agent memory, per-run isolation, and replay Excellent
A local dataset you clone, fork and experiment on Excellent
Single-process throughput Excellent

That last one measured: 66,000 writes and 152,000 reads per second, single-process and in-process, on an ordinary laptop. There is no network hop, because there is no network.

Where it does not fit

Requirement Fit
A multi-user database server No, by design
Hundreds of remote clients over a network No, by design
Writes shared across machines No, by design
SQL, or joins across models No, by design
A petabyte analytical warehouse No
A hosted, managed database service No
Running fully in a browser Partly, today
A high-churn workload with bounded storage Not yet
An event log that must survive a merge Not yet
Reranking search results Not yet

The ones that are decisions

There is no server. Not a small one, not an optional one. strata start hosts a local socket so other processes on the same machine can attach; it takes no --port and no --bind. The MCP server speaks over stdio. Nothing in the binary listens on a network.

That is the point rather than a gap. An embedded database that grew a network listener would be a different product with different failure modes. If you need many machines talking to one database, you need a database server, and Strata is not one.

There is no SQL and there are no joins. Reads are per model. Combining two models is your code’s job. A workload that is genuinely relational, with multi-table joins in the hot path, will fight this the whole way.

Concurrency is processes on one machine. Several can share a database: the first to open it hosts, the rest broker to it. Embedded databases covers what that guarantees. It is not a substitute for a connection pool serving remote clients.

The ones that are current state

These may change, and it is worth knowing which is which.

Running in a browser is partial. The engine compiles to wasm and runs the playground and the demo on the homepage. But hub answers that it “needs a host environment and is not available in an embedded session”, and inference is not a command in that build at all. The data models work; the network-shaped features do not.

History grows and there is no way to prune it. Every version of every value is retained, which is the product working as intended, and it costs roughly 140 bytes per version for a small value. There is no vacuum, no compact and no retention window in the CLI. Databases and storage has the measurements. For a workload that rewrites the same keys in a tight loop, that is a real constraint today.

A merge does not carry events or graph data. Key-value, JSON and vectors move; the other two do not, and the receipt reports success either way. If your design puts an event log on a branch that has to merge, the log does not arrive.

Reranking does not work. The command exists and no shipping provider implements it. Rerank search results covers what to do instead.

Python is the only SDK. Node.js and Rust are not shipping. Compatibility and versioning has the current set, generated from the release.

A shorter way to decide

Strata is a good fit when the database lives inside one program, the state is worth versioning, and you would otherwise be running three or four systems to hold different shapes of the same thing.

It is the wrong tool when the database is a service that many programs on many machines talk to. That is not a limitation to work around; it is a different category of software.

Where to look next

Introduction to StrataDB for what it is, and Quickstart for the ten-minute version of whether you like working in it.

Verified against strata-core@v1.2.7 · Edit this page · Report an issue

agents: this page as markdown → /docs/learn/should-i-use-strata.md