What “embedded” buys you
For an agent doing dozens of reads to decide one action, in-process calls are the difference
between a coherent turn and a timeout.
Start
A complete flow
Storage
The API is identical across all three, so you can develop against
:memory: and deploy against
Postgres without changing call sites.
Two domains historically reported
isSupported() == true on SQLite while every call failed — that
gap is closed, but it’s worth calling isSupported() rather than assuming parity when you’re
relying on a less common domain.Determinism and explicit write intent
Operations are deterministic, and writes require explicit intent rather than being inferred. That’s what makes an agent holding the engine safe to reason about: a read cannot mutate, and a mutation is a decision someone made. See the CLI safety model for the same principle at the command line.Money is never a float
0.1 + 0.2 !== 0.3 in binary floating
point, and a commerce engine that sells exact settlement cannot afford that drift.
When to embed
Related
- Quickstart
- Architecture
- Bindings — 11 languages, and their caveats
- MCP Server — 938 tools over this engine