Microservices is an extremely popular architecture style that has gained significant momentum in recent years. In this chapter, we provide an overview of the important characteristics that set this architecture apart, both topologically and philosophically.
Most architecture styles are named after the fact by architects who notice a particular pattern that keeps reappearing—there is no secret cabal of architects who decide what the next big movement will be. Rather, it turns out that many architects end up making common decisions as the software development ecosystem shifts and changes. The common best ways of dealing with and profiting from those shifts become architecture styles that other emulate.
However, microservices differ in this regard—it was named fairly early in it’s usage and popularized by a famous blog entry by Martin Fowler and James Lewis entitled Microservices published in March 2014. They recognized many common characteristics in this relatively new architectural style and delineated the common characteristics. This helped define the architecture for curious architects but also helped them understand the underlying philosophy.
Microservices is heavily inspired by the ideas in Domain-driven Design, a logical design process for software projects. One concept in particular from DDD, bounded context, decidedly inspired microservices. The concept of bounded context represents a decoupling style. When a developer defines ...