SQLite is a relational database engine embedded into applications. It stores all the data in a single file, doesn’t require a separate server to operate.

It supports most SQL standards, runs on any platform that supports C, requires no setup or administration.

When to use:

  1. Data separated from client/server? choose client/server

Many client programs sending SQL to the same database over a network

  1. Many concurrent writes? choose client/server

It ill only allow one writer at any instant in time. For many situations, this is not a problem, see SQLite concurrency and why you should care about it | Jellyfin. Each application does its database work quickly and moves on, and no lock lasts for more than a few dozen milliseconds. But there are some applications that require more concurrency, and those applications may need to seek a different solution. 3. Big data? choose client/server

  1. Otherwise - choose SQLite

    For device-local storage with low writer concurrency and less than a terabyte of content.

Sources