This document discusses microservices and building REST services with Spring. It begins by defining microservices as an approach to developing applications as suites of small, independent services. It then covers microservice benefits like autonomy, scalability and innovation, as well as challenges like network latency and increased complexity. Structural principles for microservices like resilience, security and elastic scaling are outlined. Common microservices patterns and anti-patterns are also discussed. The document concludes by demonstrating how to build a basic REST service with Spring.