Most of the new projects start out as a single codebase where all the components interact with one another via direct function calls. However, as the user traffic and codebase increases, we will start facing issues with the codebase. Here are a few possible reasons for this:
- Your codebase is growing in size and this means that it will take longer for any new developer to understand the complete system.
- Adding a new feature will take longer because we have to make sure that the change doesn't break any of the other components.
- Redeploying code for every new feature might become cumbersome because of the following:
- Deployment failed and/or
- One of the redeployed components had an unexpected bug which crashed the program and/or
- The build process may take longer because of a large number of tests
- Scaling the complete application to support a CPU...