TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

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

38 pointsby clubdorothealmost 4 years ago

19 comments

rollulusalmost 4 years ago
In the cons of monoliths: &quot;High coupling between components&quot; 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 &quot;component&quot; 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.<p>Or am I missing something?
评论 #28062098 未加载
评论 #28062090 未加载
评论 #28062668 未加载
评论 #28062551 未加载
评论 #28062130 未加载
评论 #28062378 未加载
评论 #28062153 未加载
评论 #28062261 未加载
评论 #28062114 未加载
zinekelleralmost 4 years ago
&gt; If we analyze most of the successful migrations into microservices, they were driven almost exclusively from necessity rather than preference.<p>This is basically how everything should work. There&#x27;s no need to rush things if you don&#x27;t <i>need</i> it now, especially that some that do convert are disappointed at the results (it&#x27;s not the microservices themselves, it&#x27;s the specific migration planning, design, and maintenance.)<p>&gt; So maybe there’s no point in keep discussing microservices vs monoliths.<p>Wikimedia has monoliths for text-based systems and microservices for (some) media-based systems, and it make sense: transcoding is unpredictable workload (for them, I imagine this is more common for YouTube) while database operations (at Wikipedia&#x27;s scale) is very predictable and doesn&#x27;t warrant the additional complexity. Even in their planning for multi-datacenter operations (<a href="https:&#x2F;&#x2F;www.mediawiki.org&#x2F;wiki&#x2F;Wikimedia_Performance_Team&#x2F;Active-active_MediaWiki" rel="nofollow">https:&#x2F;&#x2F;www.mediawiki.org&#x2F;wiki&#x2F;Wikimedia_Performance_Team&#x2F;Ac...</a>), they are more concerned with disaster recovery and slowness to logged-in users, not quick scalability.
评论 #28062304 未加载
BiteCode_devalmost 4 years ago
Most softwares are monoliths in 2021. The exceptions are over hyped, because the day to day lives of administration and corporate devs are boringly standard.
recursivedoubtsalmost 4 years ago
microservices: let&#x27;s take the hardest problem in software construction, factoring the system properly, and introduce network connections and deployment complexity into it.<p>yeah, there&#x27;s a place for monoliths, and developers who are willing to ignore the industries ludicrous fads and faang-chasing have the advantage.
评论 #28061982 未加载
评论 #28062447 未加载
评论 #28062217 未加载
eric4smithalmost 4 years ago
Every project should be started as a monolith. Period.<p>Then as it grows and it makes sense to decouple at the edges then it makes sense.<p>And these micro services only make sense when there is a team responsible for each one.<p>Otherwise the whole thing is like a game of chess - you will forget to make a move at some point.
评论 #28063138 未加载
loourralmost 4 years ago
After much debate my company recently switched back to a monolithic architecture and it may be the greatest decision we&#x27;ve ever made.<p>It dramatically simplifies so many aspects of development, which means you can have developers working on more impactful features and you don&#x27;t have to worry about create a meta structure for keeping things consistent across all your micro services which is one of the biggest benefits I didn&#x27;t see mentioned in this article.<p>And in many systems with interdependent logic (which ours is), not duplicating data and not having micro services calling other micro services in loops become incredibly difficult things to avoid.<p>I highly recommend the monolith for anyone who is not trying to cope with epic scaling issues.<p>All hail the monolith!
cientificoalmost 4 years ago
In my experience, the architecture is not relevant at all for the success of a business.<p>It&#x27;s alignment with the company structure is.<p>The same way Conway&#x27;s law tells us that company structure and the communications should be in sync, the architecture should match the teams.<p>As a rule of thumb... the good architecture is the one that minimize the communication within the different teams.
评论 #28062135 未加载
dasil003almost 4 years ago
I feel all these black and white comparisons of monolith vs microservices tend towards being overly reductive and miss the crux of the matter.<p>First, &quot;microservice&quot; is a terrible name (we should have just stuck with SOA), it leads to all kinds of agile consultant snake-oil salesmen claiming some ideal size for a service. That&#x27;s bullshit. Services should be defined by their interfaces, full stop. If you can&#x27;t come up with a stable interface between two services such that the interface changes orders of magnitude than the code within each service, or if you find yourselves always having to deploy the services in pairs due to leaky abstraction on the interface, <i>then they probably shouldn&#x27;t be two services</i>.<p>Second, SOA is primarily a tool for scaling teams. Yes there are some tangential benefits in terms of code base size, CI build time, etc, but those are false economies if you have a small team that has to deal with the overhead of many services. Modern web-scale architectures are really about factoring things to leverage specialists to scale very large tech platforms.<p>Third, and perhaps most importantly. In any rapidly growing business you need to evolve quickly. You should not expect to design a perfect architecture day one, you should plan to evolve the architecture continuously, so that every two orders of magnitude growth you look up and realize you&#x27;ve replaced most of what you&#x27;ve previously written one way or another. Small startups that focus on &quot;microservices&quot; before they are anywhere near 100 engineers tend to die before traction.
silvestrovalmost 4 years ago
&gt; Developers always want to try the new flashy things [...] On the other hand, management mostly sees risks .. mostly wants new fancy features<p>I have the inverse experience: management wants to brag about tech and therefore force ill-suited tech onto the developers.<p>I&#x27;ve had managers that wants a CDN because that&#x27;s what all professionals do and they don&#x27;t take a moment to think about added risk by adding more components to the system (or even if it adds any benefit at all).
评论 #28061937 未加载
评论 #28061885 未加载
glutamatealmost 4 years ago
Microservices Pros: Code reusability?<p>Please ELI5 how I get better code reuseability in microservices than in my monolith with separated concerns into libraries and helper modules.
评论 #28061990 未加载
评论 #28061880 未加载
评论 #28061827 未加载
littlecranky67almost 4 years ago
Hearing a lot about monolith vs. microservices, can someone shed some light how &quot;pluggable&#x2F;plug-in driven monoliths&quot; fit in? To Quote Martin Fowler on monoliths:<p>&gt; Change cycles are tied together - a change made to a small part of the application, requires the entire monolith to be rebuilt and deployed.<p>But this is not true. I worked at some C# &quot;monolith&quot; ~2010ish, and we used MEF framework to build pluggable .dll files that you could just &quot;drop&quot; into the deployment folder. As long as you stuck to the same interfaces (through a shared interfaces project) you could build and ship individual parts of the application in separate teams. Even exceptions could not harm the full system (when they were properly caught in the host) - and segfaults shouldn&#x27;t happen in a managed system (but yes, they did, mostly through P&#x2F;Invokes).<p>I always liked the good old &quot;Winamp model&quot; where you would just drop some dlls and got new visualization plugins enabled - each more different than the other.
madeofpalkalmost 4 years ago
&gt; Is there any place for monoliths in 2020?<p>&gt; Is there any place for monoliths in 2021?<p>maybe one year we&#x27;ll get our answer!
评论 #28062110 未加载
fortytw2almost 4 years ago
Many of the points in this article are entirely a matter of implementation, not inherent to or ingrained in any particular architectural choice.<p>You can just as easily build a highly modular and decoupled monolith as you can a tightly coupled and fragile microservice. The same point holds true for many of the other pro&#x2F;cons the author brought up.
halfmatthalfcatalmost 4 years ago
It really depends on the framework being used. Some frameworks are essentially micro-in-monolith (Akka) and some encourage the microservice framework (Federated Apollo GraphQL) due to their use case.<p>I think it ultimately it depends on the tools being used and the team building them because there&#x27;s tradeoffs to going each way.
tester756almost 4 years ago
Monoliths pros:<p>Way easier to debug
cwitty88almost 4 years ago
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.
评论 #28062116 未加载
lobo_tuertoalmost 4 years ago
I think tou can reap the benefits of both: monolith + microservices (nanoservices?) with something like Elixir &#x2F; Erlang.
mat0almost 4 years ago
Yes
KingOfCodersalmost 4 years ago
Yes.