Microservices vs Monolithic Architecture: A Practical Approach

๐Ÿ“ Monolithic and Its issues

๐Ÿ™‚ When we start learning backend development and implementation, many of us implement all our functionalities in one codebase. Forex. If we want to build the backend of an e-commerce store then we can go with the …


This content originally appeared on DEV Community ๐Ÿ‘ฉโ€๐Ÿ’ป๐Ÿ‘จโ€๐Ÿ’ป and was authored by Lovepreet Singh

๐Ÿ“ Monolithic and Its issues

๐Ÿ™‚ When we start learning backend development and implementation, many of us implement all our functionalities in one codebase. Forex. If we want to build the backend of an e-commerce store then we can go with the project with a single index.js file including the functionality of:-

  • Shopping Orders
  • Items or Products
  • Payment
  • Store
  • Wallet
  • Cart

๐Ÿ™‹ But is it right to do so? We do have the advantages of the monolithic architecture like easy testing, and easily deployable. But we do have some issues like scalability, load balancing, and error handling.

Microservices meme

๐ŸŽฏ With Microservices we can address these issues and we also can use some of the advanced technologies like Docker, Kubernetes effectively.

๐Ÿ“ Microservices

Microservices example

๐ŸŽฏ Microservices architecture includes working of separate services that are loosely coupled and work on different ports and with their own database generally.

๐Ÿ˜Œ Let's take an example of an eCommerce app with payment, product, and shipping service. It may look like this:-

Example:-

Product
--> Used:- JAVA, MYSQL
--> Working on:- PORT 3001
Payment
--> Used:- NODE, MongoDB
--> Working on:- PORT 4000
Shipping
--> Used:- Python, SQLite
--> Working on:- PORT 3002

๐Ÿ™‚ Now these services can communicate with each other using APIs and all. We have the advantages of load balancing, error handling (If payment service fails it will not affect the product service), and modular code with this architecture (Microservices).

๐Ÿ“ Microservices Patterns

๐Ÿ”ฅ While we implement microservices, there are some patterns like using BFF (Backend for frontend), Service Discovery

BFF (Backend for frontend)

API Gateway

๐Ÿ‘‰ Here, we have API Gateway that handles all the stuff like Authentication, load balancing ,etc and act as a reverse proxy to accept the incoming requests and gives the appropriate results.

Service Discovery Registry

Load balancing in Microservices

๐Ÿ‘‰ It is used when we have multiple instances of a service and we get the address of the particular instance from the service discovery.

๐Ÿ™‚ Note:- We will see the implementation too, Don't get panic if you are not able to understand fully.

Inter-Microservice Communication

Inter Microservices communication

๐Ÿ‘‰ This is one of the method where we can make calls between the services. You can make Sync calls or Async calls depending on the functionality. Here, we have used the Queue where the messages will be passed from service 1.

Circuit Breaking

Circuit breaking pattern

๐Ÿ‘‰ This situation arises when one or more calls fails in between and other keeps waiting. forex. Service2-->Service3 call fails and Service 1 will keep waiting. In that case, we can do following:-

  • Use the last recent call stored inside the cache from service 2 and 3 and give the response
  • Fallback call:- It is the case when Service 3 calls another third party API and waiting for a long time. Then Service 2 can directly call to that 3rd party API

Log Aggregation Pattern

Log storing

๐Ÿ‘‰ It is the Pattern where we store all the logs of our active microservices so that we can track and monitor them

Serverless

Serverless

๐Ÿ‘‰ It is a cloud computing application where we can use Functions that triggers while we call. These functions do have a cold start time though but might be very effective in most of the applications.

๐Ÿ”ฅ Follow for more. We will see the implementation in our next Blog. Share this series and drop your views


This content originally appeared on DEV Community ๐Ÿ‘ฉโ€๐Ÿ’ป๐Ÿ‘จโ€๐Ÿ’ป and was authored by Lovepreet Singh


Print Share Comment Cite Upload Translate Updates
APA

Lovepreet Singh | Sciencx (2023-01-02T06:02:46+00:00) Microservices vs Monolithic Architecture: A Practical Approach. Retrieved from https://www.scien.cx/2023/01/02/microservices-vs-monolithic-architecture-a-practical-approach/

MLA
" » Microservices vs Monolithic Architecture: A Practical Approach." Lovepreet Singh | Sciencx - Monday January 2, 2023, https://www.scien.cx/2023/01/02/microservices-vs-monolithic-architecture-a-practical-approach/
HARVARD
Lovepreet Singh | Sciencx Monday January 2, 2023 » Microservices vs Monolithic Architecture: A Practical Approach., viewed ,<https://www.scien.cx/2023/01/02/microservices-vs-monolithic-architecture-a-practical-approach/>
VANCOUVER
Lovepreet Singh | Sciencx - » Microservices vs Monolithic Architecture: A Practical Approach. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2023/01/02/microservices-vs-monolithic-architecture-a-practical-approach/
CHICAGO
" » Microservices vs Monolithic Architecture: A Practical Approach." Lovepreet Singh | Sciencx - Accessed . https://www.scien.cx/2023/01/02/microservices-vs-monolithic-architecture-a-practical-approach/
IEEE
" » Microservices vs Monolithic Architecture: A Practical Approach." Lovepreet Singh | Sciencx [Online]. Available: https://www.scien.cx/2023/01/02/microservices-vs-monolithic-architecture-a-practical-approach/. [Accessed: ]
rf:citation
» Microservices vs Monolithic Architecture: A Practical Approach | Lovepreet Singh | Sciencx | https://www.scien.cx/2023/01/02/microservices-vs-monolithic-architecture-a-practical-approach/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.