List of Patterns Foreword Preface Introduction 1. Cloud Applications Introduction to Cloud Applications Cloud Computing Defined Cloud Computing Practices Cloud Application Conclusion:Wrapping Up Cloud Applications 2. Application Architecture Introduction to Application Architecture Software Architecture Architectural Trade-Offs Component Terminology Architectural Patterns Big Ball of Mud Modular Monolith Distributed Architecture Conclusion:Wrapping Up Application Architecture 3. Cloud-Native Application Introduction to Cloud-Native Application Cloud Computing Cloud Native Cloud-Native Maturity The Twelve-Factor App Designing Applications for the Cloud Cloud-Native Architecture Application Package Service API Stateless Application Replicable Application External Configuration Backend Service Conclusion:Wrapping Up Cloud-Native Application 4. Microservices Architecture Introduction to Microservices Architecture Microservices Microservices Architecture Versus Monolithic Architecture Microservices and Cloud-Native Architecture Architecting Microservices Applications Microservice Domain Microservice Adapter Microservice Dispatcher Polyglot Development Self-Managed Data Stores Service Orchestrator Conclusion:Wrapping up Microservices Architecture 5. Microservice Design
Introduction to Microservice Design Guiding IDEALS for Designing Microservices Domain Modeling Techniques for Designing Microservices What's the Right Size for a Microservice? Lower Bound Upper Bound Finding the Right Level of Abstraction Model Around the Domain Ubiquitous Language Event Storming Domain Event Bounded Context Application Services Context Map Aggregate Repositories Domain Service Anti-Corruption Layer Conclusion:Wrapping Up Microservice Design 6. Event-Driven Architecture Introduction to Event-Driven Architecture A Motivating Example From Service Orchestration to Event-Driven Architecture Pseudosynchronous and Asynchronous Service Invocation Decoupling Listeners from Emitters Event-Driven Architecture and Cloud-Native Architecture Developing Event-Driven Architecture Event Choreography Event Reactive Component Event Notifier Event API Event Backbone Event Sourcing Conclusion:Wrapping Up Event-Driven Architecture 7. Cloud-Native Storage Introduction to Cloud-Native Storage Storing Data for Cloud-Native Applications Architecting Applications with Cloud-Native Storage Database Topology and Database Selection Cloud Database Replicated Database Configuration Database Application Database Relational Database Document Database Key-Value Database Graph Database Columnar Database Data Module
Polyglot Persistence Database-as-a-Service Command Query Responsibility Segregation (CQRS) Conclusion:Wrapping Up Cloud-Native Storage 8. Cloud Application Clients Introduction to Cloud Application Clients Multimodal User Interfaces Separate UI and Domain Ports and Adapters (Hexagonal) Architecture Principles for Application User Interfaces Architecting Applications with Multimodal Clients Client Application Browser Application Web Form Application Servlet and JSP with Microservices and Interaction Models Single-Page Application Micro Frontend Mobile Application Command-Line Interface Public API Interaction Model Conclusion:Wrapping Up Cloud Application Clients 9. Application Migration and Modernization Introduction to Application Migration and Modernization Cloud Computing Service Models Modernization and Technical Debt Application Fundamentals Cloud Migration Strategies Migrating and Modernizing Applications in the Cloud Lift and Shift Virtualize the Application Containerize the Application Refactor the Monolith Start Small Pave the Road Conclusion:Wrapping Up Application Migration and Modernization 10. Strangling Monoliths Introduction to Strangling Monoliths Strangler Patterns Strangle the Monolith Wrap the Monolith New Features as Microservices Transform Monolith into Microservices Hairline Cracks Extract Component Macro Service Refactor then Extract Replace as Microservice Addressing Challenging Areas in the Monolith Monolith to Microservice Proxy
Playback Testing Conclusion:Wrapping Up Strangling Monoliths Conclusion Index