This document provides an overview of developing microservices applications. It discusses identifying independent business tasks to build initial microservices around, designing for failure by making the application more robust, and designing for scale using service discovery, configuration repositories, and common logging. Techniques for developing microservices like circuit breakers, service registries, and bulkheads are explained. The document also covers refactoring existing monolithic applications into microservices by splitting modules and repackaging applications.