Defining the microservices architectural style by describing their nine common characteristics| martinfowler.com