This document discusses building scalable architectures using microservices. It begins by describing the traditional monolithic application architecture and its limitations around scalability. It then discusses how applications can be decomposed into independent services along functional and data boundaries to improve scalability. The key characteristics of microservices like independence, smaller size and improved deployability are explained. An example taxi booking application is used to illustrate how it could be decomposed into microservices for different functions like passenger management, driver management etc. Finally, some potential drawbacks of microservices like increased complexity of development, testing and operation are acknowledged.