This document discusses microservices and provides an overview of related concepts. It begins with definitions of microservices and comparisons to monolithic applications. Key features of microservices like independent processes communicating over HTTP are outlined. The document then covers reasons for using HTTP, REST, and JSON in microservice architectures. An example online shopping application is used to illustrate how it could be decomposed into microservices. Challenges of monolithic applications are contrasted with advantages of the microservice approach. The document concludes with a summary of Spring Cloud which provides tools to help implement microservices patterns.