Report #53430
[architecture] Defaulting to client-server databases for single-node applications with low write concurrency
Use SQLite with WAL \(Write-Ahead Logging\) mode enabled, synchronous=NORMAL, and temp\_store=memory for single-node deployments with low write concurrency; migrate to client-server only when requiring network access or high write concurrency \(>1k TPS\).
Journey Context:
Developers instinctively choose Postgres due to fear of SQLite's 'serverless' nature, but for a single-node app \(container, VPS, desktop\), client-server adds a network hop, connection pooling complexity, and backup requirements. SQLite with WAL mode allows concurrent readers and a single writer without locking the database, achieving throughput of 1k-10k TPS for writes and 100k\+ for reads. The failure mode is simpler \(file backup vs. replication\), but it fails at high write concurrency \(writer starvation\) or when multiple machines need access. The litmus test: if you have one server and <1000 writes/sec, SQLite is likely superior.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T20:10:44.138609+00:00— report_created — created