Live data from Hacker News

Is there any place for monoliths in 2021? (2020)

fjrevoredo.me

21–30 of 67 posts

Re: Is there any place for monoliths in 2021? (2020)

#21

In the cons of monoliths: "High coupling between components" is listed. I think this is a misconception, and a popular one: some people apparently believe that if you take software, and introduce some RPC form at "component" boundaries, things are magically decoupled. I.e., just because execution happens in a different process, it is decoupled. And this fallacy is what leads to the distributed monolith. Or am I missi…

"Coupling" means too many things to be useful. E.g. coupling at the interface level (component B interface was not thought in generic way, but only to accommodate component A), coupling at the deployment level (to re-deploy B you also have to re-deploy A), coupling at a code level (component A using private fields of B) etc.

In my experience, with microservices, if you don't put much effort into following best practices, you end with components coupled at the interface level at worst, but you can still deploy independently and don't have to worry about service B subscribing to some internal event in A or that kind of things.

In a monolith, for the same amount of effort, after some time you usually naturally end up with all the kinds of coupling mentioned here, which is very hard to then get out of.

Re: Is there any place for monoliths in 2021? (2020)

#24

In the cons of monoliths: "High coupling between components" is listed. I think this is a misconception, and a popular one: some people apparently believe that if you take software, and introduce some RPC form at "component" boundaries, things are magically decoupled. I.e., just because execution happens in a different process, it is decoupled. And this fallacy is what leads to the distributed monolith. Or am I missi…

[deleted]

Re: Is there any place for monoliths in 2021? (2020)

#25
post #7

Decent write-up. I agree that most things should start as a monolith and only move to microservices if no other solution will solve the problem. You can scale a monolith quite effectively with a little planning.

Agreed, but I have seen numerous times (I contract and see a lot of shops inhouse) that employees suggest microservices as architecture from the start for new projects. I have a strong feeling this is CV driven development, a.k.a "its trendy and I need skills in this field to stay relevant on the job market".

Re: Is there any place for monoliths in 2021? (2020)

#26

In the cons of monoliths: "High coupling between components" is listed. I think this is a misconception, and a popular one: some people apparently believe that if you take software, and introduce some RPC form at "component" boundaries, things are magically decoupled. I.e., just because execution happens in a different process, it is decoupled. And this fallacy is what leads to the distributed monolith. Or am I missi…

No no no. This is right. Inserting layers of indirection doesn't change the inherent coupling that exists between components.

Sure you may be able to call it "looser" coupling, but you may also be able to call it a rats nest of complexity!

Re: Is there any place for monoliths in 2021? (2020)

#27

In my experience, the architecture is not relevant at all for the success of a business. It's alignment with the company structure is. The same way Conway's law tells us that company structure and the communications should be in sync, the architecture should match the teams. As a rule of thumb... the good architecture is the one that minimize the communication within the different teams.

I've worked for a very successful very high margin $200M+ revenue company with very good salaries on a (some years back) CORBA Java system.

Re: Is there any place for monoliths in 2021? (2020)

#28

In the cons of monoliths: "High coupling between components" is listed. I think this is a misconception, and a popular one: some people apparently believe that if you take software, and introduce some RPC form at "component" boundaries, things are magically decoupled. I.e., just because execution happens in a different process, it is decoupled. And this fallacy is what leads to the distributed monolith. Or am I missi…

Couldn't have said it better myself.

Sometimes you gain real benefits from this approach (e.g. maybe a component needs to be scaled independently), but I find that very commonly, people write tightly coupled micro-services and end up with a distributed monolith.

Re: Is there any place for monoliths in 2021? (2020)

#29

microservices: let's take the hardest problem in software construction, factoring the system properly, and introduce network connections and deployment complexity into it. yeah, there's a place for monoliths, and developers who are willing to ignore the industries ludicrous fads and faang-chasing have the advantage.

exactly, thank you

Re: Is there any place for monoliths in 2021? (2020)

#30
post #13

Microservices Pros: Code reusability? Please ELI5 how I get better code reuseability in microservices than in my monolith with separated concerns into libraries and helper modules.

If you have an “authentication” micro service. I can just reuse/deploy the service for my new app. No coding (maybe some configuration)

I find a lot of people create micro-services when a simple library would suffice. An "authentication" micro-service might make sense in some contexts, but in almost every real-world situation I've been in, this would be better as a library.
Post reply on HN