As a concept, they have been one of the most toxic concepts to be released on the tech world.
I remember a conference where some influential person had a slide "if your service doesn't fit on a slide, it's too big".
I've seen literal devastation in multiple companies coming from inept technical leaders who drank the microservices koolaid and ended up with 10 services per team, slower services and having to do implement JOINs over network.
Those teams not only had to 10x the maintenance work, they also had to solve new problems they wouldn't have with the right service split.
Ignore buzzwords and influential speakers who stopped coding in 90s. Split services based on how your people are split across teams.
It seems like people are coming back on their senses though, we must be in the plateau phase of the hype cycle.
True.
> As a concept, they have been one of the most toxic concepts to be released on the tech world.
Sadly, I have to agree.
One of the problems is that people assume that Microservices "should be as small as possible" when they should be "Small enough that a small team can own them"
> I've seen literal devastation in multiple companies coming from inept technical leaders who drank the microservices koolaid and ended up with 10 services per team, slower services and having to do implement JOINs over network.
I just joined this team (7 developers). We have 48 components with 48 repos. Engineers are VERY competent on an individual level but the maintenance burden is huge. It is a configuration management nightmare. We are replacing a super critical system. It is burning out the team.
> Ignore buzzwords and influential speakers who stopped coding in 90s. Split services based on how your people are split across teams.
I think it is the younger engineers that think this is the only way because that is what they have seen all their careers. (Since 2012 or so). Some corporate Architects are building great careers out of this chaos. Their architecture diagrams look very impressive. I don know if they are aware or not of the damage.
> It seems like people are coming back on their senses though, we must be in the plateau phase of the hype cycle.
Hopefully. I don want to spend the last five years of my career dealing with this mess.
I don't know what people should do. It is named as micro service after all.
It is same with Agile cult with endless sprints, stories, epics, sagas, daily scrums, scrum of scrums, scrum master of ceremonies, and what not, people are then told "Do what works in your situation, silly." I mean yeah, it is so simple and straightforward now why didn't everyone think of it before.
This is a disappointment I have, when you mention "normal" services/SOA in past 5-10 years, younger devs assume you mean tiny microservices, and you get caught between monolith vs microservices holy war.
Larger domain services are a huge benefit to many shops, but it has felt like a losing battle recently. Like being a centrist between Democrats vs Republicans in the US.
Thanks for saying this out loud.
It was a constant uphill battle though, my time was largely spent on trying to prevent the creep of services born out of trying to enforce Conway’s law rather than to contain it’s impact. When people put in the effort of shaping the team/organization around the most optimal architecture rather than shaping out the architecture to fit the organization, it works out rather nicely and yields good productivity and an efficient system. Luckily at the time even ICs like me had enough sway to keep things at check.
It implies things such as an ESB, etc. microservice is a distinct architecture.
If I had made big tech level money, there is no better time to retire and move away from tech for me.
I still don't understand how 19% of respondents picked 'Monolith' as a system design approach. Perhaps they coexist?
Node does exist, but it's not where the money is.
Writing Java or C# without an IDE is painful.
Writing Python or C without and IDE simply lacks creature comforts.
So any demographics used for a survey of an IDE company will skew for "IDE focused" languages. All else being equal.