Report #54903
[architecture] Overkill database complexity for low-write high-read embedded workloads
Use SQLite in WAL \(Write-Ahead Logging\) mode for read-heavy, low-concurrency \(<1000 TPS\), single-node deployments; avoid if you need concurrent writers, row-level locking, or network client access
Journey Context:
Postgres introduces network hops, connection pool saturation, and operational overhead \(vacuum, replication\). SQLite in WAL mode provides ACID with 35% faster reads than socket-based DBs for single-box apps because it avoids IPC overhead. The critical boundary: SQLite handles concurrency via readers-writer locks; with WAL, readers don't block writers, but only one writer proceeds at a time. Above ~1000 TPS write-heavy or with concurrent write bursts, lock contention kills performance. Common mistakes: using default rollback journal for high throughput \(WAL is mandatory for concurrency\) or attempting to use SQLite with NFS/network storage \(locking is broken on many NFS implementations\).
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T22:38:59.400690+00:00— report_created — created