Report #13068
[architecture] Defaulting to PostgreSQL for simple low-write applications
Use SQLite for applications with <100k writes/day, single-server deployment, and read-heavy workloads. Choose PostgreSQL only when you need concurrent writes \(high connection counts\), row-level security, complex replication, or network-separated application/database tiers.
Journey Context:
PostgreSQL imposes operational tax: connection pooling, WAL maintenance, vacuuming, and network latency. SQLite has zero network overhead, simpler backups \(file copy\), and often outperforms client/server databases for read-heavy workloads due to in-process execution. The 'serverless' model fails with high write concurrency \(database-level write locking blocks\), but that's rare in early-stage apps. Common mistakes: assuming 'serious' apps need Postgres, prematurely optimizing for hypothetical scale, or ignoring that SQLite supports WAL mode for improved concurrency. The operational simplicity of a single file often outweighs distributed benefits until specific scaling walls \(horizontal write scaling\) are hit.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T17:43:18.806383+00:00— report_created — created