Spring Boot and Cloud Native Applications

  1. Cloud Native Principles
    1. Cloud Native Definition
      1. Microservices Architecture
        1. Service Decomposition
          1. Bounded Contexts
            1. Service Autonomy
            2. Containerization Benefits
              1. Application Portability
                1. Resource Efficiency
                  1. Deployment Consistency
                  2. DevOps Practices
                    1. Continuous Integration
                      1. Continuous Deployment
                        1. Infrastructure as Code
                        2. Cloud Platform Utilization
                          1. Scalability Features
                            1. Managed Services
                              1. Cost Optimization
                            2. Twelve-Factor App Methodology
                              1. Codebase Management
                                1. Dependency Declaration
                                  1. Configuration Externalization
                                    1. Backing Service Abstraction
                                      1. Build and Release Separation
                                        1. Stateless Process Design
                                          1. Port Binding
                                            1. Horizontal Scaling
                                              1. Fast Startup and Shutdown
                                                1. Development-Production Parity
                                                  1. Log Streaming
                                                    1. Administrative Process Isolation
                                                    2. Microservices Design Patterns
                                                      1. Decomposition Patterns
                                                        1. Domain-Driven Design
                                                          1. Business Capability Decomposition
                                                            1. Data Decomposition
                                                            2. Communication Patterns
                                                              1. Synchronous Communication
                                                                1. Asynchronous Messaging
                                                                  1. Event-Driven Architecture
                                                                  2. Data Management Patterns
                                                                    1. Database per Service
                                                                      1. Saga Pattern
                                                                        1. Event Sourcing
                                                                        2. Reliability Patterns
                                                                          1. Circuit Breaker
                                                                            1. Bulkhead
                                                                              1. Timeout
                                                                                1. Retry