Microservices are an architectural style that develops a single application as a set of small services . Each service runs in its own process. The services communicate with clients, and often each other, using lightweight protocols, often over messaging or HTTP.