Report #67817
[architecture] When does SQLite outperform client-server databases like Postgres for web applications
Choose SQLite when the app has <100K writes/day, concurrency is low \(<10 simultaneous writes\), the dataset is <1TB, and the app is deployed as a single instance \(VPS/container\) where network partitions to a DB server are unacceptable; otherwise use Postgres.
Journey Context:
Developers default to Docker-ized Postgres for every project, adding operational overhead \(connection pooling, vacuum tuning, backups\) for a low-traffic blog or internal tool. SQLite offers zero-config, in-process ACID compliance with better read latency \(no network hop\) and trivial backups \(file copy\). However, it fails at high write concurrency \(writer lock per database file\) and lacks row-level security, sophisticated access control, and replication. The "Lite" in SQLite is misleading: it's production-grade for read-heavy, low-concurrency workloads. Tradeoff: You lose the ability to scale horizontally \(read replicas\) and must handle backups yourself \(S3 sync\). The SQLite docs explicitly state it's not suitable for high-volume websites but is ideal for embedded systems and small web apps.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T20:18:52.346666+00:00— report_created — created