Distributed Systems for Practitioners

The distributed systems course, designed just for you, comprehensively covers the practitioner’s point of view on modern complex software systems.

Beginner

167 Lessons

9h 30min

Certificate of Completion

The distributed systems course, designed just for you, comprehensively covers the practitioner’s point of view on modern complex software systems.

AI-POWERED

Code Feedback
Explanations
Prompt
Adaptive Learning

AI-POWERED

Code Feedback
Explanations

This course includes

7 AI Prompts
12 AI Feedbacks
18 Quizzes

This course includes

7 AI Prompts
12 AI Feedbacks
18 Quizzes

Course Overview

This course is about establishing the basic principles of distributed systems. It explains the scope of their functionality by discussing what they can and cannot achieve. It also covers the basic algorithms and protocols of distributed systems through easy-to-follow examples and diagrams that illustrate the thinking behind some design decisions and expand on how they can be practiced. This course also discusses some of the issues that might arise when doing so, eliminates confusion around some terms (e.g.,...Show More

TAKEAWAY SKILLS

Distributed Systems

What You'll Learn

Learn some of the complexities inherent in distributed systems.

Learn the key design problems in distributed systems.

Learn the key algorithms used in distributed systems.

Study the design of some real-life distributed systems.

Establish the concepts every system designer needs to know for efficient design of large-scale systems.

Learn the concepts software engineers need to know to make good use of distributed systems.

What You'll Learn

Learn some of the complexities inherent in distributed systems.

See more

Course Content

1

Before Getting Started

This chapter introduces the distributed systems course focusing on key concepts, basic principles, and algorithms for beginners.
2

Introduction to Distributed Systems

This chapter covers the basics of distributed systems including common fallacies and its impact on system performance, scalability, and availability.
3

Basic Concepts and Theorems

The chapter explores core principles of distributed systems like partitioning, replication, consistency models, CAP theorem, and Quorums.
4

Distributed Transactions

This chapter covers distributed transactions ensuring reliable, atomic operations across multiple nodes while managing complexities of consistency.
5

Achieving Isolation

The chapter explores methods to achieve isolation in distributed systems, including pessimistic and optimistic concurrency control techniques.
6

Achieving Atomicity

5 Lessons

The chapter discusses various protocols like 2PC, 3PC, and quorum-based methods to ensure atomicity in distributed systems.
7

Concluding Distributed Transactions

2 Lessons

This chapter ties together distributed transaction concepts and introduces long-lived transactions and sagas.
8

Consensus

12 Lessons

The chapter explores the consensus problem in distributed systems, focusing on algorithms like Paxos and Raft, their complexities, and practical applications.
9

Time

5 Lessons

This chapter explores the concept of time in distributed systems including logical clocks for event ordering and accuracy.
10

Order

10 Lessons

The chapter delves into event ordering in distributed systems, exploring causality, logical clocks, and snapshot problems for achieving consistency.
11

Networking

9 Lessons

The chapter teaches network components and protocols essential for distributed systems communication, focusing on layered architecture.
12

Security

7 Lessons

This chapter emphasizes critical security concerns in distributed systems, focusing on authentication, confidentiality, and integrity to protect against malicious threats.
13

Security Protocols

5 Lessons

The chapter explores distributed system security concepts like TLS, PKI, web of trust, and OAuth, ensuring secure communication and authorization.
14

From Theory to Practice

1 Lesson

The chapter introduces various distributed systems, focusing on their applications and design evolution, while referencing previous learned principles.
15

Case Study 1: Distributed File Systems

5 Lessons

The chapter explores distributed file systems, focusing on GFS and HDFS, their architectures, file operations, and consistency models.
16

Case Study 2: Distributed Coordination Service

6 Lessons

The chapter explores distributed coordination services, focusing on Zookeeper's structure, guarantees, and its efficient protocol for managing distributed systems.
17

Case Study 3: Distributed Data Stores

16 Lessons

This chapter covers distributed data stores like BigTable, HBase, Cassandra, Spanner, and FaunaDB, including their architectures and consistency models.
18

Case Study 4: Distributed Messaging System

5 Lessons

The chapter focuses on Apache Kafka's architecture, configuration, messaging guarantees, and transactional capabilities within distributed systems.
19

Case Study 5: Distributed Cluster Management

3 Lessons

The chapter covers Kubernetes’ architecture and components, highlighting resource coordination and network communication.
20

Case Study 6: Distributed Ledger

5 Lessons

The chapter explores Corda's distributed ledger architecture, data model, compatibility, and its mechanism for ensuring secure, trustworthy transactions.
21

Case Study 7: Distributed Data Processing Systems

10 Lessons

This chapter covers MapReduce, Apache Spark, and Apache Flink, including their architectures and perks of batch and stream processing.
22

Practices & Patterns

1 Lesson

This chapter introduces best practices and patterns for building and operating distributed systems.
23

Communication Patterns

4 Lessons

This chapter discusses various data exchange techniques in distributed systems encompassing serialization, communication types, models and their tradeoffs.
24

Coordination Patterns

1 Lesson

This chapter discusses coordination patterns like orchestration and choreography to enable collaboration in distributed systems.
25

Data Synchronization

3 Lessons

This chapter focuses on data synchronization, event sourcing, and change data capture (CDC) for maintaining data integrity across distributed systems.
26

Shared-nothing Architectures

2 Lessons

This chapter teaches how shared-nothing architecture enhances scalability and availability while minimizing sharing.
27

Distributed Locking

2 Lessons

This chapter teaches distributed locking, including leases and fencing techniques, and preventing safety risks to ensure fault tolerance and consistency.
28

Compatibility Patterns

2 Lessons

The chapter highlights the importance of backwards compatibility in distributed systems, emphasizing techniques for effective maintenance during updates.
29

Dealing with Failure

6 Lessons

This chapter focuses on failure-handling techniques in distributed systems, such as retries and backpressure, and mitigating failure impacts.
30

Distributed Tracing

1 Lesson

This chapter discusses how distributed tracing enahcnes troubleshooting in distributed systems through unique identifiers and performance logs.
31

Concluding this Course

2 Lessons

The chapter summarizes the essential aspects of distributed systems, emphasizing practical applications, key concepts, and further exploration opportunities.

Course Author

Trusted by 1.4 million developers working at companies

Anthony Walker

@_webarchitect_

Emma Bostian 🐞

@EmmaBostian

Evan Dunbar

ML Engineer

Carlos Matias La Borde

Software Developer

Souvik Kundu

Front-end Developer

Vinay Krishnaiah

Software Developer

Eric Downs

Musician/Entrepeneur

Kenan Eyvazov

DevOps Engineer

Anthony Walker

@_webarchitect_

Emma Bostian 🐞

@EmmaBostian

Hands-on Learning Powered by AI

See how Educative uses AI to make your learning more immersive than ever before.

Instant Code Feedback

Evaluate and debug your code with the click of a button. Get real-time feedback on test cases, including time and space complexity of your solutions.

AI-Powered Mock Interviews

Adaptive Learning

Explain with AI

AI Code Mentor

FOR TEAMS

Interested in this course for your business or team?

Unlock this course (and 1,000+ more) for your entire org with DevPath