Top all-time · #3764
Expensify
Company blog · use.expensify.com/blogprogrammingsystems
Expensify is the company blog at use.expensify.com, writing about programming and systems. Since 2019, 21 different Hacker News readers have linked it 23 times, most often “Scaling SQLite to 4M QPS on a single server (2018)”. It is still writing: the last post was on 2026-10-29, and you can follow it by feed.
Too few sampled comments (15) to say how often HN recommends it.?
Why HN links it
HN commenters link Expensify's blog mainly for its account of scaling SQLite to 4M queries per second on a single node using the Bedrock branch. Several comments cite it as evidence for SQLite performance claims.
Summarised by Claude from a sample of 15 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Proud partner of F1® THE MOVIE. Expensify makes expense tracking easy—scan receipts, pay bills, and earn cash back.
Most-linked posts?
- Scaling SQLite to 4M QPS on a single server (2018)13 people · 15 mentions · first linked 2023-10-11
- The secret experiment behind the Expensify Lounge4 people · 4 mentions · first linked 2023-10-26
What Hacker News says?
Bedrock Bedrock is the more interesting branch. It’s WAL2 + CONCURRENT It’s also the branch Expensify uses to scale to 4M QPS, on a single node (6-years ago) https://sqlite.org/src/timeline?r=bedrock https://use.expensify.com/blog/scaling-sqlite-to-4m-qps-on-a...
Comment linking /blog/scaling-sqlite-to-4m-qps-on-a-single-server
on “SQLite: Wal2 Mode”Submitted How Expensify achieves extreme concurrency with NUMA balancing as a story · 3 points
HN discussionhttps://use.expensify.com/blog/scaling-sqlite-to-4m-qps-on-a...
Comment linking /blog/scaling-sqlite-to-4m-qps-on-a-single-server
on “IO Devices and Latency”Submitted Scaling SQLite to 4M QPS on a single server (2018) as a story · 3 points
HN discussionhttps://use.expensify.com/blog/scaling-sqlite-to-4m-qps-on-a... Linked at the bottom of the article is the most extreme I've seen.
Comment linking /blog/scaling-sqlite-to-4m-qps-on-a-single-server
on “100k TPS over a billion rows: the unreasonable effectiveness of SQLite”Submitted How Expensify's OSS program is powering SWE-Lancer as a story · 2 points
HN discussionNot sure what you are talking about? In WAL mode (which is what you should be using) writes don't block reads and reads don't block writes. If you are connections pooling (which you should) the cache will stay hot. Sqlite (properly configured) will outperform "proper databases" often by an order of magnitude in the context of a single box. You want a single writer for high performance as it lets you batch. > 256 har…
Comment linking /blog/scaling-sqlite-to-4m-qps-on-a-single-server
on “Use One Big Server (2022)”Submitted Scaling SQLite to 4M QPS on a Single Server (EC2 vs. Bare Metal) [2018] as a story · 2 points
HN discussionI wonder if 1.7 petabytes of data (1T indexed records) could fit on a single (very) beefy baremetal server for under a couple thousand dollars a month, served by SQLite. Like this: https://use.expensify.com/blog/scaling-sqlite-to-4m-qps-on-a...
Comment linking /blog/scaling-sqlite-to-4m-qps-on-a-single-server
on “Migrating Uber's ledger data from DynamoDB to LedgerStore”Submitted Scaling SQLite to 4M QPS on a Single Server (EC2 vs. Bare Metal) (2018) as a story · 1 points
HN discussionWhat does "scale" here mean? Sqlite can go quite far https://use.expensify.com/blog/scaling-sqlite-to-4m-qps-on-a... I agree with you w/r/t "Why build your own query builder" though since (AFAIK) you can't touch the underlying SQL. I'm making heavy usage of FTS5 in my app, and it doesn't look like they support that. And, to be fair, feathers/rethink also have the weaknesses you list: - Why build your own query build…
Comment linking /blog/scaling-sqlite-to-4m-qps-on-a-single-server
on “Show HN: Triplit – Open-source syncing database that runs on server and client”Submitted The secret experiment behind the Expensify Lounge as a story · 1 points
HN discussion> Encourage workers back in with a carrot not the stick Expensify tried this, making the best office they possible could, the end result was people would come in to try it, leave positive feedback then never go back. https://use.expensify.com/blog/the-secret-experiment-behind-...
Comment linking /blog/the-secret-experiment-behind-the-expensify-lounge
on “Companies with return-to-office mandates face losing their most valuable workers”Submitted The secret experiment behind the Expensify Lounge as a story · 1 points
HN discussionWorked here. Changed my mind on SQLite. Hipp worked alongside us. SQLite can be crazy performant: https://use.expensify.com/blog/scaling-sqlite-to-4m-qps-on-a...
Comment linking /blog/scaling-sqlite-to-4m-qps-on-a-single-server
on “SQLite on Rails: The how and why of optimal performance”Submitted The secret experiment behind the Expensify Lounge as a story · 1 points
HN discussionhttps://use.expensify.com/
Comment linking /
on “Steve Singh stepping down as Docker CEO”https://use.expensify.com/blog/ceo-friday-why-we-dont-hire-n... this article again, but in HN comment form this time. yawn
Comment linking /blog/ceo-friday-why-we-dont-hire-net-programmers
on “Is .NET just miles ahead or am I delusional?”You might be interested in how Expensify use(s/d) SQLite for their product. https://use.expensify.com/blog/scaling-sqlite-to-4m-qps-on-a...
Comment linking /blog/scaling-sqlite-to-4m-qps-on-a-single-server
on “Ask HN: SQLite in Production?”Have you ever contemplated the true performance of SQLite? Expensify reached 4M point database queries per second, and an artificial (more like parser-testing, not database-touching) 160M qps. If your backend is on a single machine of predictable performance, and you properly index your queries, and you don't require remote DB connections, you don't need anything else but SQLite for 95% of use cases. https://use.exp…
Comment linking /blog/scaling-sqlite-to-4m-qps-on-a-single-server
on “Lobste.rs is now running on SQLite”Also Expensify's Bedrock, which powers their widely-circulated "Scaling SQLite to 4M QPS" article: https://bedrockdb.com/ https://use.expensify.com/blog/scaling-sqlite-to-4m-qps-on-a...
Comment linking /blog/scaling-sqlite-to-4m-qps-on-a-single-server
on “Marmot: Multi-writer distributed SQLite based on NATS”Expensify has blogged[0] about having terabyte sized SQLite databases. [0] https://use.expensify.com/blog/scaling-sqlite-to-4m-qps-on-a...
Comment linking /blog/scaling-sqlite-to-4m-qps-on-a-single-server
on “SQLite needs testers for the new binary JSON format”SQLite benchmarks are deeply flawed. Somebody has proven that it can sustain 4M queries per second on bare metal, 1.5M qps on a cloud VM, and it happened over 7 years ago. Therefore I do not believe any number from SurrealDB. https://use.expensify.com/blog/scaling-sqlite-to-4m-qps-on-a...
Comment linking /blog/scaling-sqlite-to-4m-qps-on-a-single-server
on “Benchmarking SurrealDB 3.x vs. Postgres, Mongo, Neo4j and Redis (With Fsync)”