Database / DuckDB Interview questions
What is the difference between DuckDB's in-process mode and its new client-server (Quack) protocol?
DuckDB's traditional, and still default, mode is fully in-process: the database engine is a library loaded directly inside the calling application, with no network protocol or separate server involved at all. The newer Quack protocol adds an optional, genuine client-server deployment mode on top of DuckDB, letting a DuckDB instance run as a standalone, network-accessible service that separate client processes (potentially on different machines) connect to.
| In-process (traditional) | Quack client-server |
| Database engine runs inside the calling application's process. | Database runs as a separate, network-accessible service. |
| No authentication/authorization layer needed for local access. | Includes an OAuth/OIDC authentication layer for controlled access. |
| Best for single-process, embedded use cases. | Best for deployable, shared analytical services accessed by multiple clients. |
This addition doesn't replace DuckDB's embedded model, it extends DuckDB's applicability to a genuinely different deployment pattern: a shared, centrally-hosted DuckDB service that multiple applications or users can connect to over a network, with proper authentication, something the traditional embedded model was never designed to support on its own.
More Related questions...