Microservices


I want to start with a popular phrase that’s being quoted in the article: “not every problem is a nail and not every solution a hammer”. The reason to start with it is because when people know something, we tend to find a solution that fits into something we know or recently learned.

So, quoting Martin Fowler on a later article1 he wrote in 2015: “So my primary guideline would be don't even consider microservices unless you have a system that's too complex to manage as a monolith.”

Also, Fowler says on that same article1is a microservice architecture a good choice for the system you're working on? It depends…

Throughout the original article, Fowler mentions the cases that would be the appropriate to adopt the microservices model. For many years, a lot of systems were developed and envisioned as monolithic structures that were hard to deploy, especially in large enterprise systems, that often had the problem of intertwined code, that when modified incorrectly, could lead up to a bunch of problems for the development team or the system’s functionality. Trying to develop new features could become difficult on those monolithic systems.

At the time that he wrote the article in 2014, microservices were relatively new and he only saw microservices as a promising way to develop systems. Since the article was written, microservices have become more popular, given the context of cloud applications being more adopted.

So, in conclusion, you could say that microservices could be a real solution, but the premise for any system, monolithic or not, is to have well written code. Cleaning up your application and refactoring could save a lot of trouble before transforming a monolithic system into microservices. As I said in the beginning, not all solutions work best for all problems, it actually depends on the problem that you’re trying to solve…

Don’t turn microservices into the hammer that will always try to find a nail.



Comments

Popular posts from this blog

Is Design Dead?

Who needs an architect?