Delete your docker-compose.yml.
For years, the first step of any Node.js project was "spin up a Postgres container".
With modern NVMe SSDs and Node.js 22.5+, a local SQLite file using the native driver often creates a simpler, faster, and zero-latency architecture for 99% of microservices.
02. Zero Dependencies
No npm install better-sqlite3. No python compilation errors. It's built right into the binary.
03. It Scales (WAL Mode)
"But SQLite doesn't handle concurrency!"
False. In WAL (Write-Ahead Logging) mode, readers do not block writers. You can handle thousands of reads per second on a single file.
db.exec('PRAGMA journal_mode = WAL');
04. The Senior Engineer's Take
Complexity is the enemy.
If your service has < 100GB of data and runs on a single node (even with replicas using LiteFS), Postgres is over-engineering.
The reliability of a simple file on disk is unmatched. Backups are just cp data.db backup.db.