ENGINEERING ★ 69 upvotes 2018

Scaling SQLite to 4M QPS on a Single Server (EC2 vs. Bare Metal)

Retrospective Overview & Key Insights

Distilled analysis of the business dynamics, operational challenges, and strategic takeaways:

In this technical retrospective (2018), @quinthar shares practical architectural lessons learned from running, scaling, or migrating production software under lean constraints.

Core Principles for Independent Builders:
1
Defaulting to simpler architectures (such as monolithic frameworks, SQLite, or managed VPS) prevents early engineering bankruptcy.
2
Evaluating true compute and egress costs reveals that high cloud bills can often be slashed by 80%+ through judicious re-platforming.
3
Code you write at 2 AM as a solo engineer must be easy to debug six months later without complex microservice dependencies.
Community Debate Themes:

HN engineers debated the tradeoffs between cloud convenience and raw server economics, database indexing strategies, and resisting premature architectural complexity.

Community Discussions & Critical Reviews

High-signal perspectives, counter-arguments, and peer founder insights debated on Hacker News (2 total discussions):

ST @styfle Peer Contributor

There's a few things that stood out to me that seem like "bad practices":

we don’t use DNS internally — just configuration-managed /etc/hosts files

This seems very odd and redundant. Does someone manually edit all servers when a new server comes online?

Make RANDOM() deterministic

Why would you use random if you want determinism? That sounds like the opposite of random to me.

David Barrett, Founder of Expensify

Was this blog post really written by the founder!?!

The perftest[0] code is in a branch named "dbarrett_perftest" but that still surprises me.

[0]: https://github.com/Expensify/Bedrock/tree/dbarrett_perftest/perftest

HISTORICAL ERA Cloud & Mobile Era (2014–2019)
COMMUNITY SCORE ★ 69 points
TOTAL DISCUSSIONS 2 comments