Report #9690
[architecture] Selecting SQLite for high-write-concurrency multi-threaded applications
Use SQLite only for read-heavy workloads with low write concurrency \(< few hundred TPS\) and single-node deployments; switch to client-server DB when write concurrency exceeds single-writer lock or network storage is required.
Journey Context:
Developers pick Postgres 'because it's standard' for single-tenant desktop apps, adding unnecessary ops overhead. Conversely, they try to use SQLite for high-write web backends and hit the 'single writer' bottleneck even with WAL mode enabled. SQLite's locking model allows multiple readers but only one writer at a time. While WAL improves concurrency, high-TPS OLTP still stalls. The correct boundary: SQLite excels when DB and app are co-located, read-heavy, and low writer concurrency. It fails for high-TPS or network-attached storage \(NFS corruption risk\).
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T08:48:19.881625+00:00— report_created — created