Engineer Reads

Engineering Reads — 2026-07-17#

The Big Idea#

Operating software in production always reveals the leaky abstractions of our underlying tools, whether it is an ORM hiding an inefficient database query plan or an operating system masking a blunt extension registry. The transition from local development to robust operation requires stripping away these convenience layers to manage execution statistics, concurrency limits, and state resolution directly.

Deep Reads#

Learning a few things about running SQLite · jvns.ca While SQLite is heavily praised as a lightweight option for small sites, treating it as a production data store reveals the necessity of traditional database operations. The author illustrates this by confronting a 5-second full-text search (FTS5) query generated by the Django ORM, which was instantly optimized to 0.05 seconds by executing the ANALYZE command. This command is critical because it generates the table statistics the query planner relies on to avoid accidentally quadratic execution paths. Furthermore, the single-writer concurrency limits of SQLite become painfully apparent during bulk DELETE operations, where long-running transactions can trigger 5-second write timeouts, locking out other workers and causing VM crashes. To mitigate these architectural bottlenecks, practitioners are forced to adopt defensive workarounds like small batch operations, splitting tables across multiple database files, or relying on specialized streaming replication tools like Litestream. Read this if you are considering SQLite for a web application and need a pragmatic reality check on the operational friction of write-locking and query planner tuning.