Exercise 1: Client-Server vs. Embedded — What's Actually a Separate Process — Possible Solution ==================================================================== THE STRUCTURAL DIFFERENCE ------------------------------ Per this chapter, "MySQL and Postgres are both client-server systems: a separate server process runs continuously, listening on a network port, and applications connect to it as a separate, independent process — even on the same machine, the database and the application are two different running programs communicating over a socket." In MySQL/Postgres, there are always at least TWO separate operating- system processes involved: the database server process (mysqld or postgres) and the application process, communicating with each other over a network connection (even if that "network" connection is just localhost). Per this chapter, "SQLite is a C library, linked directly into the application's own process. When application code 'talks to' SQLite, it isn't sending anything over a network or even a local socket — it's making ordinary in-process function calls to library code running in the exact same process as the application itself." In SQLite, there's only ONE process — the application's own process, with the SQLite library code running as an ordinary part of that single process, not as a separate program at all. ONE CONCRETE PRACTICAL CONSEQUENCE ------------------------------ Per this chapter, "there's no 'SQLite server' to install, start, stop, or crash independently. If the application process ends, database access ends with it... and there's no separate service whose uptime needs monitoring at all." A concrete example: with MySQL or Postgres, an operations team has to specifically monitor whether the database SERVER process is still running, independent of whether the application itself is healthy — the server could crash while the application is still running (or vice versa), and each needs its own uptime monitoring. With SQLite, there is no separate server process to monitor at all — if the application process is running, its embedded SQLite library is inherently available too, since they're literally the same process. This eliminates an entire category of "is the database server up" operational concern that client-server databases require. WHY THIS WORKS AS AN ANSWER ------------------------------ It identifies precisely how many separate processes are involved in each model (two vs. one) using the chapter's own wording, and gives a concrete, specific operational consequence (server-uptime monitoring) that follows directly from that structural difference.