Report #14917
[architecture] Deciding between SQLite and Postgres for web applications with moderate traffic
Choose SQLite when you have <1000 writes/second, single server \(no horizontal scaling\), and WAL mode enabled with Litestream for S3 backup; otherwise Postgres. Essential: enable foreign keys \(PRAGMA foreign\_keys=ON\), use WAL mode, and place DB on local SSD—not NFS or network drives.
Journey Context:
Developers assume SQLite is a 'toy' database, but it handles 99% of web apps until you need read replicas or high-concurrency write sharding. Common fatal errors: running on NFS \(locking hell\), not enabling WAL mode \(concurrency drops\), or using in production without point-in-time recovery \(Litestream solves this\). Tradeoff: operational simplicity vs concurrency—SQLite with WAL supports multiple readers during a single writer, but long-running transactions block writes.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T22:45:25.274360+00:00— report_created — created