Distributed Systems

  1. System Models and Architectures
    1. System Models
      1. Physical Models
        1. Hardware Components
          1. Network Infrastructure
            1. Geographic Distribution
            2. Architectural Models
              1. Software Layers
                1. Component Placement
                  1. Communication Patterns
                  2. Fundamental Models
                    1. Interaction Models
                      1. Failure Models
                        1. Security Models
                      2. Architectural Styles
                        1. Layered Architectures
                          1. Layer Functions
                            1. Layer Interactions
                              1. Advantages and Limitations
                              2. Object-Based Architectures
                                1. Object Model Concepts
                                  1. Object Communication
                                    1. Distributed Object Systems
                                    2. Resource-Centered Architectures
                                      1. REST Principles
                                        1. RESTful APIs
                                          1. Resource Identification
                                            1. Stateless Communication
                                            2. Event-Based Architectures
                                              1. Event Notification Mechanisms
                                                1. Event Processing Models
                                                  1. Event Sourcing
                                                2. System Architectures
                                                  1. Centralized Architectures
                                                    1. Client-Server Model
                                                      1. Multi-Tier Architectures
                                                        1. Thin vs. Thick Clients
                                                          1. Server Clusters
                                                          2. Decentralized Architectures
                                                            1. Peer-to-Peer Systems
                                                              1. Structured P2P Networks
                                                                1. Unstructured P2P Networks
                                                                  1. Super-Peer Networks
                                                                  2. Hybrid Architectures
                                                                    1. Combining Client-Server and P2P
                                                                      1. Edge-Server Systems
                                                                        1. Use Cases for Hybrid Architectures
                                                                      2. Interaction Models
                                                                        1. Synchronous Systems
                                                                          1. Blocking Communication
                                                                            1. Timing Assumptions
                                                                              1. Synchronous Message Passing
                                                                              2. Asynchronous Systems
                                                                                1. Non-blocking Communication
                                                                                  1. Eventual Delivery
                                                                                    1. Asynchronous Message Passing
                                                                                    2. Event-Based Interaction
                                                                                      1. Event Notification
                                                                                        1. Event Ordering
                                                                                          1. Event Correlation
                                                                                        2. Failure Models
                                                                                          1. Crash-Stop Failures
                                                                                            1. Process Termination
                                                                                              1. Detection Mechanisms
                                                                                              2. Omission Failures
                                                                                                1. Send Omission
                                                                                                  1. Receive Omission
                                                                                                    1. Channel Failures
                                                                                                    2. Timing Failures
                                                                                                      1. Performance Failures
                                                                                                        1. Clock Failures
                                                                                                        2. Byzantine Failures
                                                                                                          1. Arbitrary Behavior
                                                                                                            1. Malicious Failures
                                                                                                              1. Impact on System Design
                                                                                                              2. Network Partitions
                                                                                                                1. Split-Brain Scenarios
                                                                                                                  1. Partition Tolerance