Challenges with monolithic applications

Over the last few years, in parallel to working with several small applications, I have had the opportunity to work on four different monolithic applications in varied domains—insurance, banking, and health care. All of these applications had very similar challenges. In this section, we will start by 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—possibly with more than 100,000 lines of code.

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 do feature releases once a quarter, but sometimes they are as little as twice a year.

Typically, monolithic applications may have some of these characteristics:

  • Large size: Most monolithic applications have large code bases.
  • 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 a great dependency on manual testing.

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

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

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