I certainly don't understand this HN's trend of hating on microservice, and the previous trend of hating monolith. I have worked in both extreme and both works fine. Sure there are things which could be implemented 20% faster with monolith or microservice architecture, but it was never in the top 5 issue that I face while doing software engineering.
As long as there is monorepo, and anything in the testing boundary could be built and edited together that is fine for me.
It is pretty easy. A lot of people worked on badly coded monoliths and then we got the microservice fad and turns out microservices was not a silver bullet solution for bad code and bad organizations.
I personally don't believe at all in microservices, at least not in the organizational sens, I do not mind e.g. genservers in Erlang but then teams owns many of them. But that said this trend is not proof that they are bad, just that they do not magically solve the problems.
I've been in this industry for three decades now, and one thing that I've observed in a number of teams is that when someone has a really strongly held belief about something in this field -- microservices, languages, web frameworks, where to put the trailing curly brace, indentation, etc -- a good percentage of the time it can be traced back to some interpersonal issue/conflict they had with someone else in their workplace/team/peer group.
I could watch it happen in real time. Person A would advocate a position on one of those items, and their nemesis on the team, B, would then build their whole personality around being against that position. They would adjust every existing belief to now fit their new perspective. It would become boringly predictable.
So when someone is really passionate and certain about something like this, my natural thought is "who hurt you?". Especially on something as amorphous and hard to pin down like microservices where it's easy to attack it from a hundred angles that likely have no relevance to an actual implementation.
Like, it really doesn't matter that much. You can make an excellent solution using almost any approach. You can use all sorts of frameworks and languages and platforms, etc. It'll all be okay.
This is interesting. I agree. I never really thought much about it but I definitely remember some people doubling down on whatever preference they had after a certain discussion.
I remember one guy screaming at me because I didn't use the pattern he wanted in a certain project. I didn't really care, but later I found he had a fight with the CTO the day before about said pattern.
> Like, it really doesn't matter that much. You can make an excellent solution using almost any approach
Yep. One can also make a horrible solution with almost any approach. ;)
As long as there is monorepo, and anything in the testing boundary could be built and edited together that is fine for me.