Kevin Park

SQLite in Production: Lessons from Two Years

December 8, 2025

Two years ago we moved a service handling around 800 requests per second from PostgreSQL to SQLite. People thought we were crazy. Here is what actually happened.

Why We Switched

Our service was a read-heavy metadata store. Roughly 95% reads, 5% writes. The Postgres instance was on a separate server, adding network latency to every query. We were paying for connection pooling, replication, and a managed database service we did not really need.

SQLite eliminated all of that. The database file sits on the same disk as the application. Reads are a function call, not a network round trip. For our access pattern, this cut p99 latency from 12ms to under 1ms.

What Worked

What Bit Us

Would I Do It Again?

For the right workload, absolutely. SQLite is not a replacement for Postgres or MySQL in general. But for single-node, read-heavy services where you control the deployment, it is genuinely excellent. The operational simplicity alone is worth it.