As discussed in a previous post (Part 5), we need to be more considerate when choosing microservice architecture. Issues like complexity, involvement of different technologies, monitoring, and scaling should be taken into account when we choose this architecture. In many cases monolith or gradual shift would be a better option.
Now let's see what may make us go for or avoid microservice architecture.
Whom microservice may not work for
Products with many changes and in their early days. For instance startups. At first, it is tempting to go for microservice. What if our startup becomes so successful that we need to scale? But with change in the business domain and without a solid product market fit we can not go for microservice. Also, we have smaller teams, small budgets, and a short amount of time. Microservice brings complexity and a new set of works and we do not want it in a startup early on.
When working with smaller teams with just a handful of developers, I’m very hesitant to suggest microservices for this reason.
So we need to eliminate the microservice tax. That is the amount of time required for small teams to maintain and monitor the services.
Another place where microservice can be avoided is when the software is developed for different customers. After all, microservice brings complexity to deployment. Your customer does not know about pods and Kubernetes at all. It will be a shock to them!
Where microservice may work well
Microservice works best when we want to get our architecture and organizational boundaries right and allow teams and developers to work independently. Also, we want to avoid delivery contention.
Softwares like Saas benefit from microservice architecture. You can release changes to the services independently and also scale up and down as demand changes.
Microservice is technology agnostic. That means you can easily match your services with cloud providers' services.
Microservices also present clear benefits for organizations looking to provide services to their customers over a variety of new channels.
This helps an organization to provide different customer experiences over different channels.
Top comments (0)