Distributed Consensus

  1. Foundational Concepts and System Models
    1. Properties of Consensus Algorithms
      1. Safety Properties
        1. Agreement
          1. Validity
            1. Integrity
            2. Liveness Properties
              1. Termination
                1. Progress Guarantees
                  1. Eventual Consistency
                  2. Performance Properties
                    1. Latency
                      1. Throughput
                        1. Message Complexity
                      2. System Models
                        1. Synchronous Systems
                          1. Bounded Message Delivery Time
                            1. Synchronized Clocks
                              1. Known Processing Times
                                1. Advantages and Limitations
                                2. Asynchronous Systems
                                  1. Unbounded Message Delays
                                    1. No Assumptions on Timing
                                      1. Arbitrary Processing Times
                                        1. Real-World Applicability
                                        2. Partially Synchronous Systems
                                          1. Unknown Bound on Delays
                                            1. Eventual Synchrony
                                              1. Global Stabilization Time
                                                1. Practical Considerations
                                              2. Failure Models
                                                1. Crash-Stop Failures
                                                  1. Permanent Process Halts
                                                    1. Detectable Failures
                                                      1. Clean Shutdown
                                                      2. Crash-Recovery Failures
                                                        1. Process Restarts
                                                          1. State Recovery
                                                            1. Persistent Storage
                                                            2. Omission Failures
                                                              1. Send Omissions
                                                                1. Receive Omissions
                                                                  1. Message Loss Patterns
                                                                  2. Timing Failures
                                                                    1. Performance Failures
                                                                      1. Clock Failures
                                                                        1. Timeout Violations
                                                                        2. Byzantine Failures
                                                                          1. Malicious Behavior
                                                                            1. Arbitrary Failures
                                                                              1. Inconsistent Messages
                                                                                1. Collusion Scenarios
                                                                              2. Network Models
                                                                                1. Reliable Networks
                                                                                  1. No Message Loss
                                                                                    1. FIFO Ordering
                                                                                      1. Bounded Delays
                                                                                      2. Unreliable Networks
                                                                                        1. Message Loss
                                                                                          1. Duplication
                                                                                            1. Reordering
                                                                                            2. Authenticated Networks
                                                                                              1. Digital Signatures
                                                                                                1. Message Authentication
                                                                                                  1. Identity Verification
                                                                                                2. The FLP Impossibility Result
                                                                                                  1. Statement of the Theorem
                                                                                                    1. Impossibility in Asynchronous Systems
                                                                                                      1. Single Process Failure
                                                                                                      2. Proof Sketch
                                                                                                        1. Bivalent and Univalent Configurations
                                                                                                          1. Critical Configurations
                                                                                                            1. Impossibility Argument
                                                                                                            2. Implications
                                                                                                              1. No Deterministic Solution
                                                                                                                1. Need for Additional Assumptions
                                                                                                                  1. Randomization Approaches
                                                                                                                  2. Circumventing FLP
                                                                                                                    1. Failure Detectors
                                                                                                                      1. Partial Synchrony
                                                                                                                        1. Randomized Algorithms
                                                                                                                      2. The CAP Theorem
                                                                                                                        1. Consistency
                                                                                                                          1. Strong Consistency
                                                                                                                            1. Linearizability
                                                                                                                              1. Sequential Consistency
                                                                                                                              2. Availability
                                                                                                                                1. System Responsiveness
                                                                                                                                  1. Fault Tolerance
                                                                                                                                    1. Service Guarantees
                                                                                                                                    2. Partition Tolerance
                                                                                                                                      1. Network Split Handling
                                                                                                                                        1. Continued Operation
                                                                                                                                          1. Graceful Degradation
                                                                                                                                          2. The Trade-off
                                                                                                                                            1. CP Systems
                                                                                                                                              1. AP Systems
                                                                                                                                                1. Practical Implications
                                                                                                                                                2. Beyond CAP
                                                                                                                                                  1. PACELC Theorem
                                                                                                                                                    1. Consistency Spectrum
                                                                                                                                                      1. Real-World Considerations