Report #102897
[architecture] When to use SQLite instead of Postgres for a small team's backend
Use SQLite for single-server, low-concurrency applications where the entire dataset fits in memory and you don't need concurrent writers. Deploy as a file-backed database with WAL mode enabled. Reserve Postgres for multi-server, high-concurrency, or write-heavy workloads.
Journey Context:
SQLite is often dismissed as 'not a real database', but for small teams with a single server, it eliminates operational overhead: no separate database process, no connection pooling, no replication setup. The key tradeoff is concurrency: SQLite uses file-level locking, so concurrent writes block. WAL mode improves read concurrency but writes still serialize. People commonly overestimate their write throughput needs. SQLite also lacks row-level locking and is unsuitable for horizontal scaling. The right call: start with SQLite if your app fits on one server, then migrate to Postgres if you hit concurrency limits or need replication.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-09T15:51:37.434510+00:00— report_created — created