1.
Before Getting Started
1 Lesson
Get familiar with the basics of distributed systems and core concepts for beginners.
2.
Introduction to Distributed Systems
10 Lessons
Get started with the essentials of distributed systems, including benefits, challenges, and failure handling.
3.
Basic Concepts and Theorems
18 Lessons
Examine key distributed systems concepts: partitioning, replication, algorithms, CAP theorem, consistency, and isolation.
4.
Distributed Transactions
2 Lessons
Break down complex ideas in distributed transactions and their challenges across multiple nodes.
5.
Achieving Isolation
6 Lessons
Map out the steps for achieving isolation in concurrent transactions using various control mechanisms.
6.
Achieving Atomicity
5 Lessons
Focus on achieving atomicity in distributed transactions through 2PC, 3PC, and quorum protocols.
Hard to Guarantee Atomicity2-Phase Commit (2PC)3-Phase Commit (3PC)Quorum-Based Commit ProtocolQuiz7.
Concluding Distributed Transactions
2 Lessons
Test your understanding of distributed transactions, ACID guarantees, and the saga pattern.
How It All Fits TogetherLong-Lived Transactions and SagasLearn how to use consensus algorithms like Paxos and Raft in distributed systems.
Defining the Consensus ProblemFLP ImpossibilityThe Paxos AlgorithmIntricacies of PaxosPaxos in Real LifeReplicated State Machine via ConsensusDistributed Transactions via ConsensusAn introduction to RaftCommunication among Raft NodesRaft's ImplementationStanding on the Shoulders of GiantsQuizWalk through time handling in distributed systems, addressing event order without global clocks.
What is Different in a Distributed System?A Practical PerspectiveA Theoretical PerspectiveLogical ClocksQuizWork your way through event ordering, causality, and time synchronization in distributed systems.
Total and Partial OrderingThe Concept of CausalityLamport ClocksVector ClocksVersion VectorsDotted Version VectorsDistributed Snapshot ProblemSolving the Distributed Snapshot ProblemPhysical and Logical Time: Closing ThoughtsQuizGrasp the fundamentals of networking layers, protocols, and their roles in distributed systems.
IntroductionThe Physical LayerThe Link Layer - ServicesThe Link-Layer ProtocolsThe Network LayerThe Transport LayerThe Application LayerTaking a Step BackQuizTake a look at key security challenges in distributed systems, including authentication, confidentiality, and integrity.
IntroductionAuthenticationConfidentialityIntegrityA Cryptography PrimerSymmetric/Asymmetric Encryption and Digital SignaturesQuiz13.
Security Protocols
5 Lessons
Follow the process of ensuring secure communication and validating entities in distributed systems.
Transport Layer Security (TLS)Public-Key Infrastructure (PKI)Web of Trust (PGP)OAuth ProtocolQuiz14.
From Theory to Practice
1 Lesson
Master the steps to categorizing distributed systems and applying previously learned principles.
Introduction15.
Case Study 1: Distributed File Systems
5 Lessons
Step through the design, operations, and consistency models of distributed file systems.
Hadoop Distributed File System and Google File SystemCreating and Reading FilesWriting and Deleting FilesGFS Consistency ModelQuiz16.
Case Study 2: Distributed Coordination Service
6 Lessons
Get started with Zookeeper for distributed coordination, ensuring reliable, efficient service management.
Coordination ServiceZookeeperGuarantees Provided by ZookeeperZookeeper's ZAB ProtocolExamples of Powerful Primitives by Zookeeper APIQuiz17.
Case Study 3: Distributed Data Stores
16 Lessons
Examine diverse distributed data stores including their architecture, performance, and consistency guarantees.
IntroductionBigTable/HBase ArchitectureAppends and Read Operations in HBaseGuarantees Provided by HBaseCassandra's Data ModelCassandra's Cluster Internode CommunicationCassandra's Consistency LevelsLinearizability Violations in CassandraLinearizability Guarantees by CassandraCassandra Performing Queries EfficientlySpanner's Data ModelSpanner's ArchitectureSpanner using TrueTimeSpanner OperationsFaunaDBQuiz18.
Case Study 4: Distributed Messaging System
5 Lessons
Break down the steps to optimize, configure, and ensure messaging guarantees in Kafka.
Introduction to KafkaKafka LeversKafka's Messaging GuaranteesTransactions, Storage Layout, and other GuaranteesQuiz19.
Case Study 5: Distributed Cluster Management
3 Lessons
Solve problems in distributed cluster management using Kubernetes components and resource coordination.
KubernetesComponents of Manager and Worker NodesQuiz20.
Case Study 6: Distributed Ledger
5 Lessons
Focus on Corda's distributed ledger, its architecture, data model, and ensuring backwards compatibility.
Introduction to CordaCorda's Data ModelCorda's ArchitectureBackwards Compatibility provided by CordaQuiz21.
Case Study 7: Distributed Data Processing Systems
10 Lessons
Master distributed data processing with MapReduce, Apache Spark, and Apache Flink frameworks.
IntroductionIntroduction to MapReduceMapReduce's Manager-Worker ArchitectureIntroduction to Apache SparkDAG of Stages in Apache SparkPerks of Apache SparkApache FlinkTime and Watermarks in FlinkFailure Recovery in FlinkQuiz22.
Practices & Patterns
1 Lesson
Get familiar with fundamental practices and patterns for effective distributed systems.
Introduction23.
Communication Patterns
4 Lessons
Discover the logic behind communication patterns, data transfer, and models in distributed systems.
Creating and Parsing DataTransfer of DataDatastores for Asynchronous CommunicationCommunication Models24.
Coordination Patterns
1 Lesson
Break apart key coordination patterns, orchestration vs. choreography, and ensure atomic operations.
Coordination Patterns25.
Data Synchronization
3 Lessons
Grasp the fundamentals of data synchronization, event sourcing, and Change Data Capture.
Data SynchronisationEvent SourcingChange Data Capture (CDC)26.
Shared-nothing Architectures
2 Lessons
Take a closer look at shared-nothing architectures, optimizing scalability, availability, and fault tolerance in distributed systems.
Sharing Problems and their SolutionBenefits and Drawbacks27.
Distributed Locking
2 Lessons
Tackle distributed locking challenges and ensure safe operations using leases and fencing techniques.
Leases in Distributed SystemsPreventing Safety Risks in Leases28.
Compatibility Patterns
2 Lessons
Master techniques for maintaining backwards compatibility in evolving distributed systems.
Backwards CompatibilityMaintaining Backwards Compatibility29.
Dealing with Failure
6 Lessons
Solve problems in handling and minimizing failures in distributed systems effectively.
Failure Handling TechniquesApplying Failure Handling TechniquesRetriesContaining Impact of FailureBackpressureReacting to Backpressure30.
Distributed Tracing
1 Lesson
Get started with distributed tracing, logging execution, and optimizing performance in complex systems.
Recording Program's Execution31.
Concluding this Course
2 Lessons
Go hands-on with performance, scalability, security, and practical applications in distributed systems.
Recap of the CourseSome More Things to Discover