The term "Microservice Architecture" has been used in recent years to describe a particular way of designing software applications as suites of independent services, allowing architectures to be refactored or replaced in smaller pieces as the business grows, instead to replace or refactor a complete application. We learn to encapsulate parts of an application in autonomous services that can be designed, developed, tested and implemented individually with little or no dependency on other components or services of an application.