We design cloud applications as a collection of services or loosely coupled modules. The microservice architecture offers the flexibility to change and redeploy our modules without worrying about the rest of the application’s components. We achieve scalability with minimal effort, and can easily change the technology stack as needed.