I'm relatively new in this and recently I've been reading and hearing a lot about how distributed systems are overused and usually a monolith can do a better job etc. I'm working at a company serving millions of customers and distributed systems are utilized, most of my experience as a software engineer was built around this to the point that I was never around a codebase that is 10/20k+ lines of code. I feel like I lack some skills in modular monolith coding skills.
My question is what kind of sources can I read to improve my understanding of monolith vs microservices, when to use each, and the tradeoff of preferring one over the other?
> hearing a lot about how distributed systems are overused and usually a monolith can do a better job etc
> improve my understanding of monolith vs microservices, when to use each, and the tradeoff of preferring one over the other
A lot of this will depend on where you're working. Where I'm at, the preference is for single tasks up to somewhere in the neighborhood of 200 gigs of RAM and commensurate CPU. Our individual servers have just stupid amounts of RAM and CPU on them, and our deployment stack has..... nontrivial amounts of overhead for.... reasons.
But if you're e.g. deploying on AWS, the price optimization point is gonna be different. And if you're deploying while working at Amazon it'll be yet a different tradeoff (cynically, having more to do with pager duty boundaries)