The architecture of microservices is a way of designing complex applications. It is built out of a suite of small deployable services, which can be deployed independently. These microservices run their own processes and communicate with one another using lightweight mechanisms such as APIs. Microservices are scalable and may even be written in different languages.