Distributed Database Systems

  1. Modern Distributed Data Architectures
    1. The CAP Theorem
      1. Consistency
        1. Availability
          1. Partition Tolerance
            1. Understanding the Trade-offs
              1. Real-World Implications
                1. System Design Choices
                  1. CAP Theorem Limitations
                2. The BASE Properties
                  1. Basically Available
                    1. Soft State
                      1. Eventual Consistency
                        1. Comparison with ACID
                        2. NoSQL Databases
                          1. Motivations and Characteristics
                            1. Schema Flexibility
                              1. Scalability
                                1. High Availability
                                  1. Performance Requirements
                                  2. Categories of NoSQL Systems
                                    1. Key-Value Stores
                                      1. Architecture
                                        1. Use Cases
                                        2. Document Stores
                                          1. Document Model
                                            1. Query Capabilities
                                            2. Column-Family Stores
                                              1. Wide Column Model
                                                1. Distributed Architecture
                                                2. Graph Databases
                                                  1. Graph Model
                                                    1. Query Languages
                                                3. NewSQL Databases
                                                  1. Bridging Relational and NoSQL
                                                    1. ACID Compliance
                                                      1. Scalability Features
                                                        1. SQL Compatibility
                                                        2. Architectural Approaches
                                                          1. Shared-Nothing Architecture
                                                            1. Distributed Query Engines
                                                              1. In-Memory Processing
                                                              2. Sharding for Scalability
                                                                1. Shard Key Selection
                                                                  1. Rebalancing Shards
                                                                    1. Cross-Shard Queries
                                                                  2. Polyglot Persistence
                                                                    1. Microservices and Database Per Service
                                                                      1. Event Sourcing and CQRS