Building Scalable Applications with Microservices