This document discusses microservices architecture and defines it as an approach to developing applications as a suite of small services that work together and communicate using lightweight mechanisms like HTTP APIs. Each service runs in its own process and deals with a specific business capability. The document traces the origins of this approach back to principles of modularity in Unix programming and emphasizes that the power comes from the relationships between programs rather than the programs themselves. It compares microservices to service-oriented architecture and discusses communication approaches like REST APIs and message queues as well as deployment using containers like Docker.