Report #4933
[architecture] Choosing between SQLite and Postgres for single-node containerized applications
Use SQLite in WAL \(Write-Ahead Logging\) mode when: single-node, read-heavy with occasional writes, <1K TPS, and use Litestream for continuous S3 backup. Avoid if: high write concurrency, network clients, or need row-level security.
Journey Context:
Postgres is operational overkill for many sidecar/edge apps, requiring connection pools and vacuum tuning. SQLite with WAL mode allows readers to proceed without blocking writers \(unlike the default DELETE journal mode\), achieving 10-50x concurrency improvement. The file-based nature eliminates network latency. However, placing the DB on NFS or shared volumes corrupts it. Litestream provides point-in-time recovery via S3 replication without the complexity of streaming replication. The common error is using default DELETE mode \(table-level locks\) or attempting multi-node access. This fits the 'small team' ethos: one file, zero ops, but with ACID guarantees.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-15T20:19:46.163520+00:00— report_created — created