I’ve seen so many startups jump straight into microservices when a simple monolith would have worked fine. It feels like this <keyword> is being pushed by everyone just because big tech does it. Does anyone else feel like the complexity and overhead of managing distributed systems are often ignored just to look modern? Are we over-complicating things for no reason?
3 answers
The "Resume Driven Development" culture is definitely to blame for the microservices craze. Engineers want to work with Kubernetes and service meshes because it looks great on a CV, but for a team of five people, it's usually a productivity killer. I’ve seen projects delayed by months because they were fighting network latency and data consistency issues that wouldn't even exist in a modular monolith. Unless you truly have the scale of Netflix or Uber, you are likely just paying a "complexity tax" without any of the actual benefits. Keep it simple until you physically can't anymore.
But isn't the ability to scale different parts of the application independently worth the initial headache of setting up the infrastructure? If you wait until you're already massive to switch, isn't the migration much more painful and expensive?
It’s definitely overrated for small teams. The cognitive load of tracking down a bug across six different services is exhausting and rarely worth the supposed "decoupling" benefits.
Well said, Melissa. I’ve noticed that "decoupling" often just turns into "distributed coupling" where you still have to deploy everything at once anyway, defeating the whole purpose of the architecture.
Andrew, the problem is that 99% of startups never reach that scale. By the time you need to scale like that, your business model or tech stack might have changed entirely anyway. Premature optimization is the root of all evil in software development. You're better off building fast and refactoring later than building a massive system for users you don't even have yet.