Docs menu · More

What it is

What is StrataDB?

An embedded, multi-model database. It runs inside your process against a local directory — one binary, one database directory, no server. Five data capabilities share one storage substrate: key-value, JSON documents, an event log, vectors, and a graph. On top of that substrate you get git-style branches and time travel. See Your first database for a hands-on tour.

Is it a server?

No. StrataDB is embedded and in-process, like SQLite or DuckDB. You do not start a daemon, open a port, or manage a connection pool — you point the CLI or the Python SDK at a directory and it opens the database in-process. There is no network mode in this line.

Is it a replacement for Postgres or Redis?

No — it complements them. Keep Postgres for relational application data and Redis for a shared cache. Reach for StrataDB when you want branch-isolated, versioned state with a KV, JSON, event, vector, and graph model in one place — agent memory, experiment isolation, and replayable history are the sweet spot.

Why not just use SQLite?

SQLite is a great relational store, but it has no branch-scoped isolation, no built-in vector or graph capability, and no per-commit time travel. StrataDB gives you those on one substrate instead of asking you to build them yourself.

Storage and durability

Durable mode versus cache mode?

Point StrataDB at a path and it runs durable: writes go through a write-ahead log and survive the process exiting. Run it with --cache and it runs in-memory — nothing is written to disk and the data is gone when the process ends. Durable mode is the default for any named path; cache mode is for tests, scratch work, and ephemeral MCP servers.

Where does my data live?

In the directory you name. A durable database directory holds a write-ahead log, a manifest, and lock files — treat the directory as one unit; do not edit files inside it by hand. Global CLI configuration lives separately under your home directory, so uninstalling the binary never touches your databases.

How does branching relate to git?

The mental model is the same: fork a branch, get an isolated line of data, and writes on the fork are invisible to its parent. A fork is cheap because it shares the parent’s data until you change something (copy-on-write), and every write is a commit you can read back with --as-of. Where it differs from git: this release has no merge command. You fork, isolate, and time-travel; you do not merge two divergent branches back together. The workflow is fork-and-replay, not fork-and-merge. See Branches and Commits.

What changed in this line

The V1 line is a clean break, so a few things from earlier previews are gone or deferred. Straight answers:

What happened to the state cell?

Removed. There is no separate state-cell capability. Use the KV store for mutable keyed state, or a JSON document for structured state.

What happened to sessions and transactions?

Removed as a public surface. There is no begin / commit / rollback. Writes auto-commit, and multi-item batches commit itemwise or under one shared commit — you do not manage a transaction by hand.

What happened to branch bundles?

Replaced by hub clones. Instead of exporting a bundle file, you clone a dataset from a hub into a new local database with strata clone, and strata remote shows where a database was cloned from. See Cloning datasets.

Vector similarity search is here — create a collection and run vector query. The broader standalone search surface and its optimizer are deferred beyond this line; the substrate for them is in place. See Vectors.

Can it run local models?

Not with the released binary. The shipped build executes inference through cloud providers (Anthropic, OpenAI, Google — bring an API key); local GGUF execution is compiled in only when the binary is built with the local feature. The model catalog commands work either way. See Inference.

Language SDKs and MCP

Is there a Python or Node SDK?

The Python SDK (stratadb) links the engine in your process and speaks the same command surface, value shapes, and error codes as the CLI — see the Python SDK section. Its V1 wheels are rolling out to PyPI. A Node SDK is later work. Beyond those, the strata CLI and its MCP server mean any language that can run a subprocess or speak MCP can drive Strata today.

How do I use it from an AI agent?

The Model Context Protocol server is built into the binary — run strata <db> mcp serve; there is no separate package to install. See For AI agents and Agents and MCP.

Still stuck?

Check Troubleshooting for concrete failure modes, or the error reference to look up a specific code.

agents: this page as markdown → /docs/faq.md