<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Adarsh Jegan</title>
    <description>The latest articles on DEV Community by Adarsh Jegan (@adarsh_jegan_d463cc38c5ef).</description>
    <link>https://dev.to/adarsh_jegan_d463cc38c5ef</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4146205%2F2cb55da0-14b0-4a72-b693-72cc3998eb73.png</url>
      <title>DEV Community: Adarsh Jegan</title>
      <link>https://dev.to/adarsh_jegan_d463cc38c5ef</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/adarsh_jegan_d463cc38c5ef"/>
    <language>en</language>
    <item>
      <title>Simplifying Monolith vs Microservices</title>
      <dc:creator>Adarsh Jegan</dc:creator>
      <pubDate>Mon, 28 Sep 2026 03:35:44 +0000</pubDate>
      <link>https://dev.to/adarsh_jegan_d463cc38c5ef/simplifying-monolith-vs-microservices-4cen</link>
      <guid>https://dev.to/adarsh_jegan_d463cc38c5ef/simplifying-monolith-vs-microservices-4cen</guid>
      <description>&lt;p&gt;First what is a microservice?&lt;/p&gt;

&lt;p&gt;Imagine you are a software developer and you want to build a shopping app like Amazon. Let us say you have four features planned for the application &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User Accounts &lt;/li&gt;
&lt;li&gt;Products list &lt;/li&gt;
&lt;li&gt;Shopping cart &lt;/li&gt;
&lt;li&gt;Payments &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So now from here, how you build the application will be determined by the type of architecture you choose.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;The monolith way&lt;/em&gt;&lt;/strong&gt; : All of these features will be bundled into a single large codebase that also shares a single database. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;The microservices way&lt;/em&gt;&lt;/strong&gt; : Each feature/service will have its own separate codebase, acting as mini-apps.&lt;/p&gt;

&lt;p&gt;So this will look like : &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Store A only handles User Logins.&lt;/li&gt;
&lt;li&gt;Store B only handles Product Search.&lt;/li&gt;
&lt;li&gt;Store C only handles the Shopping Cart.&lt;/li&gt;
&lt;li&gt;Store D only handles Payments.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  But why do we even need a microservices style architecture ? What kind of problems does this solve?
&lt;/h2&gt;

&lt;p&gt;Understanding this is very essential. Here are the main reasons for the same.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scaling cost-effectively&lt;/strong&gt; : If your app's product search feature gets flooded with too many requests than what the server could handle, a monolith forces you to scale up the whole application even if the other sections are not seeing extra traffic. &lt;br&gt;
Hence in large scale, monolithic architecture turns out to be expensive.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Technology flexibility&lt;/strong&gt; : This one is an interesting and overlooked part. &lt;br&gt;
Let's say you used Java for the application. In a monolithic style you are forced to use only Java and the associated tech stack. It is very difficult to try building special features using other languages/ tech stacks like Python.&lt;br&gt;
However, in a microservices architecture, different services can use entirely different frameworks and tech stacks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Organizational scaling&lt;/strong&gt; : Imagine your product team has 200 developers. Having everyone push code to the same codebase will introduce massive merge conflicts, communication issues and more such hindrances.&lt;br&gt;
However when you divide them into separate teams for each service, it gets much more easier to organize and scale up work.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  So now your mind could pop this question - Microservices seems so perfect yet why do many companies prefer monolith architectures?
&lt;/h2&gt;

&lt;p&gt;Microservices, though it seems perfect comes with it's own set of drawbacks. &lt;/p&gt;

&lt;p&gt;1.&lt;strong&gt;&lt;em&gt;The latency issue&lt;/em&gt;&lt;/strong&gt;- We saw that in microservices, we break down the app into separate mini-apps/services. However these services need to talk to each other. &lt;br&gt;
If a single user request has to pass through multiple separate services before getting a response, it introduces latency into your application.&lt;br&gt;
More particularly, this is termed network latency. &lt;/p&gt;

&lt;p&gt;2.&lt;strong&gt;&lt;em&gt;Data consistency issue&lt;/em&gt;&lt;/strong&gt; - In a monolith architecture, you have only one database. However, in a microservices architecture, each service has it's own database. When one of these services fail, data consistency might be lost. However in a monolith architecture, you can reverse transactions as it is a single database.&lt;/p&gt;

&lt;p&gt;3.&lt;strong&gt;&lt;em&gt;Need for infrastructure and tools&lt;/em&gt;&lt;/strong&gt; - In a monolithic architecture, your entire application can be packaged and run on one whole server.&lt;br&gt;
However, in a microservices architecture, you cannot manually manage dozens of services. You need to know containerization ( Docker ) , Kubernetes ( Container orchestration ) and automated CI/CD pipelines.&lt;/p&gt;

&lt;h2&gt;
  
  
  So how do we even decide?
&lt;/h2&gt;

&lt;p&gt;Adopt this simple approach. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use monolithic architecture in these cases&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;If your app user base is small or growing.&lt;/li&gt;
&lt;li&gt;You are a solo developer or a small team.&lt;/li&gt;
&lt;li&gt;Side projects, early stage startups.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Use microservices architecture in these cases&lt;/strong&gt;:&lt;br&gt;
1.You have dozens or hundreds of developers working on the same app.&lt;br&gt;
2.A specific part of your app needs massive scaling.&lt;br&gt;
3.Crash in minor background features are affecting critical features.&lt;br&gt;
4.Large enterprise environments.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final remarks
&lt;/h2&gt;

&lt;p&gt;In the age of AI and Automation, understanding high level system design concepts proves to be essential, regardless of whether you are a seasoned professional or a junior straight out of or pursuing college.&lt;br&gt;
Understanding these architectures and identifying the actual intents and tradeoffs will separate you from the commoditized layer of software development.&lt;/p&gt;

&lt;p&gt;Hope this article turned out to be useful for all :)&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>microservices</category>
      <category>systemdesign</category>
    </item>
  </channel>
</rss>
