Skip to main content

Monolithic Application Architecture

In regular web development process what do we do? We create one war file which contains all functionality, services, modules or all use cases related to our business. In this approach of development we do not focus to make our application modularise. We may be following modularization in our code but end product is not seperated. Every services, modules are bundled up in single war and this war is deployed on server so that our business will be available for outside world which can make a request to get the required resources. This native architecture of development is called Monolithic Architecture.



What is Monolithic Architecture

In simple definition monolithic architecture is the architecture in which all application components, functionality, modules are bundled up in single WAR. Here modules and functionality are tightly coupled with each other. And all request coming from either from web application or mobile devices or any other sources such as third party will be processed by this war. 

Monolithic architecture is simple architecture with not much complexity generally used for development of small application where not much modularization is needed. In this architecture all function/modules are tightly coupled with each other. This monolithic architecture has several advantages listed below.

Advantages of Monolithic Architecture.

  • Easy and fast development : In this we do not have to give much thought  to modularity of the application every thing here is tightly coupled and each data required during development is easily available making development easy and fast as we are not dependent in other external services. 
  • Easy deployment : War file generated is simply deployed on server and is ready to serve its client without much configuration.
  • Easy Load balancing : For purpose of load balancing we have to just created the copy of generated war and had to be deployed on different server.
With all this advantage Monolithic architecture comes with many disadvantages.

Disadvantages of Monolithic Architecture

  • Hard to train new recruits : Since our application is large and not modularised new recruits have to learn all application which may result confusion and will consume time and therefore new recruits are not available to assist the development in short period.
  • Not Scalable : for small change also we have to bring down entire application creating all functional use cases unavailable to client even the change do not have to do with other use cases.
  • Reduced Productivity : As application developed using monolithic architecture are big and therefore they take long time to build in IDE's which makes the developer less productive.
  • Continuous development is difficult: As we have to redeploy entire application for small change which make continuous development difficult.
  • Difficult to change technology of the application : Big and vast application scope makes difficult to upgrade the existing technology or to migrate to newer technology. 

Above disadvantages can be mitigated using Microservice Architecture instead of Monolithic Architecture. In microservice architecture entire application is broken down in several small application which communicate with each other using API's. Please read more about Microservices in detail here.

Comments

Popular posts from this blog

Creating Simple Hello World Application with SPRING BOOT

For creating a simple running web application with spring boot we do not have to do much. We just require to follow some simple steps and we are good to go. Unlike SpringMVC framework we do not. have to take care of all heck of configuration or XML file in one go we are all set with working mvc based web application.

Now we have to follow these steps.

Generate spring boot project from this url "https://start.spring.io/" You can do the same using STS setting to.Importing the project in STS.

Adding Spring-Security to Spring-Boot App

In the previous post we have created a simple spring boot application. This application was very simple application just getting request and showing page for requested URL. Currently all urls are open to all user that is we do not have any kind of authentication on the URL. Our spring boot application is like the open pool in which any one can come and start fishing. Now we want to secure our application so that only authenticated user will be able to visit secure part of the application. For this purpose we will be using the Spring Security. 
Scope of this tutorial. In this we will learn basic integration of spring security with spring boot.
NOTE: This tutorial will just contain only basic integration of spring security. If you haven’t gone through previous tutorial and you are the newbies to this spring boot then I will request you to go through previous post to get understanding of spring boot. 
Now lets get started with the configuration.If you do not have the previous code you can …

About Me

I am a self motivated full stack  developer. I have worked in many projects under several companies.
Java is one of my favourite language. Currently i am working with Tata Consultancy Services, Hyderabad. Tata Consultancy is my first company where i started my career on 24th Oct 2016.

Currently i am working on spring mvc in TCS but i also have a knowledge of Spring Boot, Angular, MongoDB. reqularly i am trying to add extra beauty to my profile. For this i believe in learn and unlearn strategy.

Reason for developing this blog is to show case my work and keep me busy during the weekends. Yahh! its true i have lot of free time on weekends as i don't have any girlfriend to waste my time with. And so i created this blog to show case my learning and work. Now, this blog gives me a goal to pursue and the way to keep me busy.

Through this blog i will try to share to all readers that i will be learning in course of time. I will try to keep this blog updated with latest evolution in develo…

Micro Services, A Quick Introduction.

What is Micro Services.By the name it is clear that we are talking about mini services which are able to perform their task independently. Micro Services follows micro service architecture instead of monolithic architecture. Whenever we say that application build on microservices architecture that means that this application is not dependent on one services but rather it is dependent on several many services. 
Whenever a request is made through application UI by the user then that application is calling different other services for fulfillment of the

Decompose Monolithic Application To Microservices

How To Decompose Application into Microservices. After reading the previous two posts you all must be excited to implement microservice architecture to your application and that's good you should be ready to implement something new that might boost the application performance,  maintenance, scalability and will make your application future proof. But have you ever thought how will you be breaking your application into micro application i.e microservices. Think about it for some minute exercise your brain for some time before reading the below tutorial.

Now i am sure that you all might  have come through excellent ideas for breaking up your application in microservices. Please feel free to mention your valuable ideas in comment so that other or even me can be benefited by your ideas.

Now before breaking your application into micro-services you should consider following points.
Points to be considered before creating microservices.Your each services should be easily testable.Your a…