Report #24933
[architecture] Overprovisioning database infrastructure for read-heavy low-concurrency applications
Use SQLite with WAL mode \(Write-Ahead Logging\) enabled for read-heavy, single-node applications with <1000 writes/second; implement application-level connection pooling or use WAL mode with 'IMMEDIATE' transaction mode to prevent 'database is locked' errors.
Journey Context:
Developers reflexively choose Postgres/MySQL due to fear of 'lock contention' without measuring actual concurrency needs. SQLite in WAL mode allows readers to proceed without blocking writers, achieving 100k\+ reads/second with microsecond latency. The failure mode is 'database is locked' when multiple writers collide—this is actually a feature preventing complexity, but requires handling SQLITE\_BUSY with exponential backoff in application code. Postgres adds network latency \(1-10ms vs 0.1ms\), operational complexity \(backups, connection limits\), and cost. Choose SQLite unless you need: 1\) >1TB data \(performance degrades\), 2\) high write concurrency \(>1k TPS\), 3\) network access from multiple hosts.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T20:15:35.539842+00:00— report_created — created