When to use Microservices and When to use Monolithic Architecture?
In this article, I would like to compare Microservices and Monolithic Architecture based on scope, team size, skillset, userbase, and project time constraints.
This comparison is intended to be used as a fast checklist before landing into either Monolithic architecture or Microservices.
Even though these points do not cover all aspects of choosing between Monolithic Architecture and Microservice Architecture, it gives you quite a lot of hints about when to use Monolithic Architecture and when to use Microservices.
Scope of the Project
Monolithic Architecture Scope
- The application scope is well defined and relatively simple.
- For example, creating a simple CRUD(Create Read Update Delete) application. Or maybe a web blog.
Microservice Architecture Scope
- The application scope is well defined and you expect it to grow tremendously.
Monolithic Architecture Team Size
- The team size should be rather small. Ideally less than 6–8.
Microservice Architecture Team Size
- A large team size is more appropriate to get different services ready as fast as possible.
- Also, to lower the complexity, it is best to have large teams.
The skillset of the Team
Monolithic Architecture Team Skillset
- It is suitable to have Beginner to Mid-level skill set.
Microservice Architecture Team Skillset
- Having at least an intermediate level of knowledge would be better.
- Team members should be confident about advanced microservice patterns.
Monolithic Architecture User Base
- The Target user base is small.
- The user base is not likely to be changed later on.
Microservice Architecture User Base
- Targets a big user base.
- The user base is expected to grow over time.
Monolithic Architecture Time Constraints
- Time to create a working application is critical.
Microservice Architecture Time Constraints
- The first priority is to create a system that would be able to support the frequent dynamic change in application scope and user base.
- Time to market is not the first priority.
I think this comparison creates quite a distinction between Monolithic Architecture and Microservices based on the scope, team size, skillset, userbase, and project time constraints.
I hope you find the comparison useful.
If you think the comparison is missing anything important, let us know.