Report #97682
[architecture] When should I choose SQLite over Postgres for a production application?
Use SQLite when: \(1\) the entire dataset fits in memory \(e.g., < 1 GB\), \(2\) write concurrency is low \(single writer or < 100 writes/sec\), and \(3\) you don't need replication or role-based access control. Otherwise, use Postgres.
Journey Context:
SQLite is often dismissed as 'toy' database, but it excels for embedded systems, local-first apps, and single-server workloads. The gotcha: SQLite uses file-level locking, so concurrent writes serialize — this is fine for a web server handling a few hundred requests/sec on a single process, but fails under heavy write contention. Postgres shines with many concurrent writers, advanced indexing \(GIN, GiST\), and built-in replication. Tradeoff: SQLite simplifies deployment \(no daemon, no config\), but lacks concurrency. This is the official SQLite 'appropriate uses' guidance. Common mistake: using SQLite for a multi-process web app with > 50 concurrent writers.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-25T15:51:16.710920+00:00— report_created — created