I think the problem is people who aren't building these kinds of systems learn these "best practices" without the context and then you get frustration like OP, and you can often blame the people selling these approaches (I mean understandably they want to promote their work, no doubt it works in their scenario)
But I've seen this in every direction possible at this point :
- people talking about horizontal and vertical scaling, citing Google and Facebook research - on an unreleased MVP with 0 users
- people using the quick and dirty approach with stuff like RoR and then 5 years down the line getting stuck in an mess that's hard to reuse and hard to refactor and being unable to react to quick market changes fast enough
- people implementing a distributed lock system to synchronise some state - meanwhile the entire system is built on top of one DB instance and if the DB is down the system is down - so use the DB locking
.... so many "best practices" or "good approaches" without context
But I've seen this in every direction possible at this point :
- people talking about horizontal and vertical scaling, citing Google and Facebook research - on an unreleased MVP with 0 users
- people using the quick and dirty approach with stuff like RoR and then 5 years down the line getting stuck in an mess that's hard to reuse and hard to refactor and being unable to react to quick market changes fast enough
- people implementing a distributed lock system to synchronise some state - meanwhile the entire system is built on top of one DB instance and if the DB is down the system is down - so use the DB locking
.... so many "best practices" or "good approaches" without context