Challenges with monolithic applications

Over the last few years, in parallel to working with several small applications, I had the opportunity to work on four different monolithic applications in varied domains--insurance, banking, and health care. All these applications had very similar challenges. In this section, we will start with looking at the characteristics of monoliths and then look at the challenges they bring in.

First of all: What is a monolith? An application with a lot of code--may be greater than 100K lines of code? Yeah.

For me, monoliths are those applications for which getting a release out to production is a big challenge. Applications that fall into this category have a number of user requirements that are immediately needed, but these applications are able to do new feature releases once every few months. Some of these applications even do feature releases once a quarter or sometimes even as less as twice a year.

Typically, all monolithic applications have these characteristics:

  • Large size: Most of these monolithic applications have more than 100K lines of code. Some have codebases with more than a million lines of code.
  • Large teams: The team size could vary from 20 to 300.
  • Multiple ways of doing the same thing: Since the team is huge, there is a communication gap. This results in multiple solutions for the same problem in different parts of the application.
  • Lack of automation testing: Most of these applications have very few unit tests and a complete lack of integration tests. These applications have great dependence on manual testing.

Because of these characteristics, there are a number of challenges faced by these monolithic applications.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset