Social SaaS startup (pattern case) · 2013 · cost index 4/5
Startup rebuilds on NoSQL, rediscovers joins
18-month rebuild; doubled headcount for data consistency work
What happened
A Series B team ditched Postgres because "Facebook uses Cassandra." Eighteen months later they had three document stores, hand-rolled transactions, and an analytics team that exported CSVs to answer questions SQL would have answered in 1998.
Failure mode
Schema avoidance as agility theater. Relational invariants — uniqueness, foreign keys, reporting — reappeared as brittle application code and nightly reconciliation jobs. The rebuild did not fail on throughput; it failed on product questions.
Lesson
Pick NoSQL when the access pattern genuinely fits, not when you are embarrassed by migrations. Most startups die from not shipping features, not from JOIN latency on 50k rows.
Sources
- Martin Kleppmann — Turning the database inside out
- Various startup postmortems — "we should have kept Postgres"
- MongoDB early defaults criticism (2010s era)
Related tech
Practice · 2009–2019
NoSQL for Everything
Schema-optional databases sold as a lifestyle. Right tool for some jobs; default for none.
$ Startups ditched Postgres for document stores "because scale," then rebuilt relational integrity in application code — and paid twice when joins came back as a product requirement.
Platform · 2009–now
MongoDB
Document DB that became a punchline, then a grown-up product. Survived by getting serious about transactions and ops.
Platform · 1974–now
SQL / Relational
Declarative data that outlived every ORM fashion cycle. Postgres and friends keep winning by being boring.
Practice · 2005–now
ORM-as-database
Hide SQL until N+1 queries own your night. Good ORMs survived; "never write SQL" didn't.
Platform · 2009–now
Redis
Fast structures in memory with persistence options. Cache, queue, session store — pick your footgun.
Platform · 2010–now
Elasticsearch
Full-text search and log analytics at scale. Powerful, hungry, and everywhere in observability stacks.