Report #12378
[architecture] Defaulting to PostgreSQL for every microservice regardless of access patterns, creating unnecessary operational complexity for low-write, high-read, single-node services
Use SQLite with WAL \(Write-Ahead Logging\) mode for services with <1000 writes/second, single-instance deployment, and read-heavy workloads; only upgrade to Postgres when you need network-accessible storage, row-level locking concurrency, or complex write-heavy transactions
Journey Context:
Teams reflexively provision RDS Postgres or run complex Helm charts for simple configuration services, read caches, or session stores that see 99% reads and <10 writes per second. This adds connection pool management, network latency, authentication complexity, and operational cost for no benefit. SQLite in WAL mode provides ACID compliance, excellent read concurrency \(multiple readers, single writer\), and zero network overhead since it's an embedded file. It's used in production by Apple \(iOS/macOS config\), Airbus \(flight software\), and Cloudflare \(edge configurations\). The boundary for switching: when you need concurrent write scalability \(SQLite locks the whole database on write\), network access from multiple hosts, or sophisticated features like partial indexes, JSONB operators with GIN indexes, or complex transaction interleaving. For single-instance services, SQLite eliminates an entire category of 'database is down' alerts and removes network hops.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T15:48:57.528600+00:00— report_created — created