In-process (aka embedded/embeddable) databases are not new. In fact SQLite is the most widely deployed database in the world. However, starting with DuckDB, there is a new set of in-process database systems, such as Kuzu and Lance. As a co-developer of Kuzu, I hear several frequently asked questions (some of which are misconceptions) about in-process databases.
- What are their advantages/disadvantages compared to client-server databases?
- Does in-process mean databases are in-memory/ephemeral? (NO!)
- Can in-process databases handle only small amounts of data? (NO!)
- What are some common use cases of in-process databases?
- What if my application needs a server?
I tried to answer some of these questions in a blog post with pointers to several other resources that articulate several of these points in more detail than I get into.
I hope it's helpful to clarify some of these questions and help developers position in-process DBMSs against client-server ones.
semihs•3h ago
- What are their advantages/disadvantages compared to client-server databases? - Does in-process mean databases are in-memory/ephemeral? (NO!) - Can in-process databases handle only small amounts of data? (NO!) - What are some common use cases of in-process databases? - What if my application needs a server?
I tried to answer some of these questions in a blog post with pointers to several other resources that articulate several of these points in more detail than I get into.
I hope it's helpful to clarify some of these questions and help developers position in-process DBMSs against client-server ones.