Inside the application process
A database that is a library linked into the program, with no server to run, so a query is a function call instead of a network round trip.
What it asks of a system
An embedded database runs in the same process as the application and keeps its data in local files. There is nothing to install or operate, a lookup costs no network hop, and the data can ship with the program: phones, browsers, desktop apps, devices and command-line tools all use this. SQLite’s docs put it plainly: it does not compete with client/server databases, it competes with fopen(). The same shape shows up in key-value engines such as RocksDB, which other databases build on, and in analytical engines such as DuckDB, which run SQL over local or remote files inside a Python or Node process.
The trade-offs follow from having no server. Only processes on the same machine can reach the data, so sharing it needs replication or a server built on top. Concurrency is limited: SQLite allows many readers but one writer at a time per file. And the application owns backups, upgrades and crash safety. When you compare engines, check the file format’s stability across versions, how writes from several threads or processes are handled, its behaviour on power loss, the size of the library, and the languages it has bindings for.
Good at it · 15
Compare side by sideRelational databases
Key-value stores
Query engines
Sources
Why each technology is listed comes from the sources on its own page.
