Report #36934
[architecture] Over-engineering with PostgreSQL for single-node low-throughput applications
Use SQLite in WAL \(Write-Ahead Logging\) mode with \`PRAGMA journal\_mode=WAL\` and \`PRAGMA synchronous=NORMAL\` for single-node deployments under ~1000 TPS; deploy with Litestream for continuous S3 backup, eliminating network latency and operational overhead while maintaining ACID guarantees.
Journey Context:
Developers default to 'PostgreSQL for everything' due to fear of lock-in or future scale, ignoring that network roundtrips \(even localhost TCP\) add 0.5-1ms vs SQLite's in-process microseconds, and that operational complexity \(user management, connection pools, vacuuming\) is non-trivial. The hard-won insight is that SQLite in WAL mode supports high concurrent reads \(readers don't block writers\) and that for single-tenant SaaS or edge deployments, the 'serverless' nature of a single file is operationally superior to a client-server model. The critical addition is Litestream \(or similar\) for point-in-time recovery, which addresses the main operational criticism of SQLite \(durability across disk failures\) without requiring a full Postgres deployment.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T16:28:25.124869+00:00— report_created — created