Microservices are a more concrete and modern interpretation of service-oriented architectures (SOA) used to build distributed software systems. Like in SOA, services in a microservice architecture are processes that communicate with each other over the network in order to fulfill a goal.”

Properties of microservices architecture:

  • The services are easy to replace
  • Services are organized around capabilities, e.g., user interface front-end, recommendation, logistics, billing, etc.
  • Services can be implemented using different programming languages, databases, hardware and software environment, depending on what fits best
  • Architectures are symmetrical rather than hierarchical (producer – consumer)

A microservices-based architecture

  • lends itself to a continuous delivery software development process. A change to a small part of the application only requires one or a small number of services to be rebuilt and redeployed
  • is distinct from a service-oriented architecture (SOA) in that the latter aims at integrating various (business) applications whereas several microservices belong to one application only
  • naturally enforces a modular structure


The following picture from Spring shows a overview of Microservices.



Please read the article about Microservices from Martin Fowler.