Advantages of Microservices

MicroServices

Now that we have a basic understanding of what defines monoliths and microservices, let’s explore what advantages Microservices brings to
the table. In particular, one of the most beneficial things that microservices bring is that it enables you to efficiently manage the development
and maintenance of large application that requires the efforts of dozens or even hundreds of software developers. lets me show you why. But
first. let’s set the stage for the remainder of this course. I’ll be explaining concepts and illustrating them in the context of a fictitious social media
company called Global Man Ticks. Global manteaux Provides a social media platform where users can create and publish posts, connect with
friends, view of feed of posts from there friends, network share photos and videos, comment on posts and chat directly with one another.
Global manteaux has hundreds of thousands of users and is growing expecting to have millions of users within a year. Global Mantex revenue comes from

advertising in the news feed, where user-created posts are displayed. Advertisers can pay to intersperse their posts into the news feed to reach
segments of the global manteaux user base for some time. Global Mantex currently has around 80 software developers, including four software architect.
Since global Mantex is still relatively small as far as social media companies go, they currently have a monolithic codebase and need to make
decisions about how to support the anticipated growth in user base, how to efficiently add features, and how to maintain the quality of their platform. if you consider a large monolithic application like what global Mantex has, it’s going to be comprised of several different modules. Those modules usually represent concentrations of some sort of knowledge. in the case of global semantics.

Thus far in its stage of growth, every developer is expected to be effective in adding features across the entire application codebase, regardless of which modules might need to be affected. this could be a tall order for most developers were maintaining an understanding of the domain knowledge.
Technical specifics and performance considerations of each module, as well as an understanding of the overall architectural structure between those
modules, becomes more and more difficult as an application accumulates more features over time. The truth is, no real-world project of any
significant size works this way. In practice, the domain knowledge, technical specifics, and performance considerations for each module are almost always concentrated in some subset of the entire team. In the global Mantex case, let’s consider the module that represents users’ news feeds. there is some specialized knowledge that’s required to maintain it, like how feeds air composed of both posts from their networks and advertisers. and in which order.


It also happens that there is a group of developers out of global manteaux 80 software developers that have that specialized knowledge. If we were to take that module and make a microservice out of it, organizing a team containing those developers with that specialized knowledge and place that microservice
exclusively in the care of that team, that team can be far more effective in its unique context. and the broader team can be free from the
risk of accidentally introducing problems into the news feed modules because they don’t have the necessary specialized knowledge by decomposing. A large code base into
microservice is that are in the care of teams such that specialized knowledge and the code that represents that specialized knowledge is
concentrated together, you can maximize the effectiveness of individual developers teams and the organization as a whole. For
individual developers, Narrowing the scope of responsibility to just a portion of the whole application make it far easier to develop
expertise.

This minimizes the risk that any one person’s knowledge can become a bottleneck that can slow or stop feature
development from moving forward. it mitigates the risk that an unforeseen event like someone being hospitalized or getting hired by another company causes a
costly emergency.

Read also:
Understanding the Benefit of Microservices