Should I start the application with Microservice architecture or Monolithic architecture ? It has become a billion dollar question.
Monolithic and Microservice patterns :
By definition Monolithic is nothing but a traditional unified [ read tightly coupled ] model for the design of software program. It’s so interconnected in sense to update any program component, whole application has to be re deployed
In contrast Microservice architecture is the method of developing applications as a set of independent modules which communicates through a simple well oiled interface to serve the needs of the business.
Let’s say you raise this question through various forums or through you close tech circles
You are sure to get flooded with few queries back as mentioned below :
1. What’s your application all about ?
2. What sort of concurrent users expected ?
3. Do you know the probability of the proposed platform success ?
Based on this one has to conclude the side you need to choose
But we [ my phone a friend tech circle ] always felt to start the application considering the go to market strategy. Let the application become complex to change the strategy or rework. One should first experience the pain and boundaries of the application and allow the application to go to market asap.
Microservice Architecture is nothing but developing distributed systems which may use one or more databases. Deployment is also complex. Said that there are tools which make us comfortable in delivering an application with Microservice architecture.
If your application is going to be consumed by multiple devices We should start with a monolithic design but with carefully written API’s and maximum attention to be paid on modular approach along with choosing right database.