Although there is plenty to be said for building systems based on microservice architecture, the modern approach is not necessarily always the right one for every company or website. Microservices can create unnecessary effort for smaller programs, which only have a few tasks to deal with. Not just creating services, but also maintenance, further developing, and monitoring can be comparatively complex. When it comes to monitoring processes (monitoring), you need to carefully consider whether or not they are worse off with microservices: on the one hand, individual microservices are very easy to analyze and measure, but when microservices start to build up, this task grows considerably.
When taking work process advantages into consideration, it becomes clear that microservices are not sensible for every website, especially in the short term. One advantage of working with microservices is independence for each team – you want to make sure that they can work independently and not have to wait on others. However, if the entire development team consists of just a few people, creating this separation doesn’t make a lot of sense. Additionally, if you follow Conway’s law, a small team which is undivided can accomplish a lot and may still achieve a different result.
There is also a need for major change for larger teams: Positions that control development centrally are increasingly being eliminated in favor of development teams organizing themselves. This kind of restructuring is time consuming and costly, and should be taken into consideration before any system changes are made.
Some microservice architecture advocates therefore recommend a monolithic structure first. It makes sense to approach programming a website as a monolith and take advantage of the structure in the early days. Once your website has gained sufficient scope, you can change to a microservice architecture. There is also the intermediary service oriented architecture (SOA), which is a good middle step. This architecture is also modular in structure. Individual services map business processes.