The following list can be used as a general guide when choosing a monolithic architecture. This is not a definitive list but gives an idea of when to go with a monolithic architecture over microservices:
- When the application scope is small and well defined, and you are sure that the application will not grow tremendously in terms of features. For example, a blog, a simple online shopping website, a simple CRUD application, and so on.
- When the team size is small, say less than eight people (it's not a hard limit but rather practical).
- When the average skill set of the team is either novice or intermediate.
- When time to market is critical.
- When you do not want to spend too much on infrastructure, monitoring, and so on.
- When your user base is rather small and you do not expect them to grow. For example, an enterprise app targeting a specific set of users.
In most practical use cases, a monolithic architecture would suffice. Read on to the next section to see when you should consider a microservice architecture over monolithic.