Report #28923
[architecture] Should a small team use SQLite or PostgreSQL for their application database?
Use SQLite for single-node deployments with moderate write concurrency \(<1000 writes/second\), no requirement for row-level security or complex access control, and when operational simplicity \(zero config, single-file backups\) is prioritized. Use PostgreSQL for multi-node setups, high write concurrency, or when needing robust user management, JSONB querying, or geographic extensions.
Journey Context:
Developers default to PostgreSQL 'just in case' but burden small teams with connection pooling, migration management, and backup infrastructure for low-traffic apps. SQLite's 'serverless' nature eliminates network latency, enables trivial testing via :memory: databases, and seamless containerization. However, SQLite has write-lock contention \(one writer at a time per database file\) and performs poorly on network filesystems \(NFS, SMB\), limiting it to single-node deployments. The mistake is choosing distributed database complexity for a single-node problem, or conversely, using SQLite for high-concurrency web services where connection pooling is essential.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T02:56:31.862601+00:00— report_created — created