Report #63560
[architecture] Choosing a database for a single-node application with moderate concurrency and zero ops overhead
Use SQLite in WAL \(Write-Ahead Logging\) mode for single-node deployments handling up to 100k\+ read queries/sec and moderate write bursts; migrate to Postgres only when requiring row-level security, complex access control, streaming replication, or concurrent write scaling across multiple nodes.
Journey Context:
The default mistake is choosing Postgres for all applications, adding network latency, connection pool complexity \(PgBouncer requirements\), and operational burden. SQLite with WAL mode allows concurrent readers and a single writer with full ACID guarantees; on local SSDs, it outperforms networked Postgres for low-to-moderate write loads due to zero IPC overhead. The critical constraint is the single-writer lock—if the application requires concurrent writes or multiple application servers, SQLite blocks. Additionally, Postgres features like partial indexes, rich data types, and hot standbys are absent. For 'small web' or edge deployments, SQLite with Litestream for S3 backups often provides better durability guarantees than self-managed Postgres with less complexity.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T13:10:28.867451+00:00— report_created — created