Report #102444
[architecture] Do I need Postgres for this small-to-medium service, or will SQLite suffice?
Use SQLite for low-to-medium traffic, single-node services where writes are moderate and you don't need row-level locks, horizontal scaling, or complex access control. Embed the database file in the app directory; avoid NFS. Move to Postgres when you need concurrent writers beyond one process, failover, or fine-grained permissions.
Journey Context:
Teams reflexively reach for Postgres because 'serious apps need Postgres,' adding ops overhead they don't need. SQLite handles millions of queries per second for read-heavy workloads, has zero network latency, and ships with the app. The real limits are write concurrency \(one writer at a time per file\) and no built-in replication. If your app has one process or modest concurrent writes, SQLite is often faster and simpler. Common mistake: putting the SQLite file on a network share—locking over NFS corrupts it.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-09T04:53:05.225220+00:00— report_created — created