Cloud Application Development

  1. Cloud Application Architectural Patterns
    1. Monolithic Architecture
      1. Characteristics and Trade-offs
        1. Single Deployable Unit
          1. Shared Database
            1. Technology Stack Consistency
            2. Benefits and Drawbacks
              1. Development Simplicity
                1. Scalability Challenges
                  1. Deployment Considerations
                2. Microservices Architecture
                  1. Principles of Microservices
                    1. Single Responsibility Principle
                      1. Decentralized Data Management
                        1. Business Capability Alignment
                        2. Service Decomposition Strategies
                          1. Domain-Driven Design
                            1. Bounded Contexts
                              1. Data Decomposition
                              2. Inter-service Communication
                                1. Synchronous Communication
                                  1. REST APIs
                                    1. gRPC
                                      1. GraphQL
                                      2. Asynchronous Communication
                                        1. Message Queues
                                          1. Event Streams
                                            1. Publish-Subscribe Patterns
                                          2. Service Discovery
                                            1. Service Registry
                                              1. Client-side Discovery
                                                1. Server-side Discovery
                                                2. API Gateways
                                                  1. Request Routing
                                                    1. Authentication and Authorization
                                                      1. Rate Limiting
                                                        1. Protocol Translation
                                                        2. Data Management in Microservices
                                                          1. Database per Service
                                                            1. Distributed Transactions
                                                              1. Event Sourcing
                                                                1. CQRS Pattern
                                                              2. Serverless Architecture
                                                                1. Core Concepts of Serverless
                                                                  1. Event-driven Execution
                                                                    1. Stateless Functions
                                                                      1. Auto-scaling
                                                                      2. Functions as a Service (FaaS)
                                                                        1. Function Lifecycle
                                                                          1. Cold Starts and Warm-up
                                                                            1. Execution Context
                                                                            2. Backend as a Service (BaaS)
                                                                              1. Authentication Services
                                                                                1. Database Services
                                                                                  1. File Storage Services
                                                                                  2. Benefits and Drawbacks
                                                                                    1. Cost Efficiency
                                                                                      1. Vendor Lock-in
                                                                                        1. Debugging Challenges
                                                                                          1. Performance Considerations
                                                                                        2. Event-Driven Architecture (EDA)
                                                                                          1. Event Producers and Consumers
                                                                                            1. Event Brokers and Message Queues
                                                                                              1. Message Brokers
                                                                                                1. Event Streaming Platforms
                                                                                                  1. Event Stores
                                                                                                  2. Choreography vs. Orchestration
                                                                                                    1. Choreography Patterns
                                                                                                      1. Orchestration Patterns
                                                                                                        1. Saga Pattern