Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Agree entirely. I think system design interviews are partly to blame because they select for people who think that the only way to design a system is the cargo cult method that interview prep books and courses preach, which is:

- break everything into microservices

- have a separate horizontally scalable layer for load balancing, caching, stateless application server, database servers, monitoring/metrics, for each microservice.

- use at least two different types of databases because it's haram to store key-value data in a RDBMS

- sprinkle in message-passing queues and dead-letter queues between every layer because every time you break one system into two, there can be a scenario where one part is down but the other is up

- replicate that in 10 different datacenters because I'll be damned if a user in New York needs to talk to a server in Dallas

And all this for a service that will see at most 10k transactions per second. In other words, something that a single high-end laptop can handle.

99.9% of the time your architecture does NOT need to look like Facebook's or Google's. 99% of tech startups (including some unicorns) can run their entire product out of a couple of good baremetals. Stop selecting for people who have no grounding of what is normal complexity for some given scale.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: