Microservice architecture, also referred to as microservices, is a phrase used in software design to refer to a single software application designed as a suite of independently deployable small services. For example, the small application might support multiple clients, expose APIs and integrate with other applications.
Microservices are basically designed to receive then process requests and respond accordingly, independent of other services. Over time the services can evolve to meet changing business needs.
Common Characteristics of Microservices
Currently there is no formal definition of microservice architecture, but software built as microservices do share common characteristics and functions, including multiple component services that can be deployed independently without compromising the application. Microservices are generally designed around business capabilities and priorities.
Another important characteristics of microservices is that the services, while bounded are composed of loosely coupled elements. This enables developers to update the services independently as business needs change. For example, when one service is updated and redeployed it will not impact other services or require other services to be updated.
Microservice Architecture Is Similar to Service-Oriented Architecture (SOA)
Microservice architecture is considered to be the opposite of monolithic architecture and similar to Service-Oriented Architecture (SOA). It differs from SOA in that SOA is a broader framework whereas microservices is more refined.