Microservices are great when it comes to building scalable code bases with independent deployments, separating concerns, better resilience, polyglot technologies and better modularity, reusability, and development life cycle. However, modularity and reusability come at a cost. More modularity and reusability may often result in high coupling or code duplications. Having many different services attached to the same shared library will soon lead us back to square one and we will end up with monolithic hell.
In this section, we are going to see how to overcome this hell. We will see some options with practical implementations and understand the sharing code and common code process. So let's get started.