Monolithic by its literal definition is a single piece of software composing all the required components in a single tiered. It’s a traditional architecture where everything is shipped together as a single piece of software.
Is an all-in-one architecture wherein all aspects of the software operate as a single unit.
Despite having different components/modules/services, the application is built and deployed as one Application for all platforms (i.e., desktop, mobile and tablet) using RDBMS as a data source.
Pros Of Monolithic
# Simple to develop — At the beginning of a project it is much easier to go with Monolithic Architecture.
# Simple to test. For example, you can implement end-to-end testing by simply launching the application and testing the UI with Selenium.
# Simple to deploy. You have to copy the packaged application to a server.
# Simple to scale horizontally by running multiple copies behind a load balancer.
Cons Of Monolithic
# Maintenance — If Application is too large and complex to understand entirely, it is challenging to make changes fast and correctly.
# The size of the application can slow down the start-up time.
# You must redeploy the entire application on each update.
# Monolithic applications can also be challenging to scale when different modules have conflicting resource requirements.
# Reliability — Bug in any module (e.g. memory leak) can potentially bring down the entire process. Moreover, since all instances of the application are identical, that bug impacts the availability of the entire application.
# Regardless of how easy the initial stages may seem; Monolithic applications have difficulty adopting new and advance technologies. Since changes in languages or frameworks affect an entire application, it requires efforts to thoroughly work with the app details, hence it is costly considering both time and efforts.
Comments