HomeCoursesDistributed Systems for Practitioners
AI-powered learning
Save

Distributed Systems for Practitioners

Delve into distributed systems, exploring core principles, key algorithms, and protocols. Gain insights into design decisions, trade-offs, and practical implementation.

4.5
167 Lessons
9h 30min
Updated this week
Join 2.9 million developers at
Join 2.9 million developers at
LEARNING OBJECTIVES
  • 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.

Learning Roadmap

167 Lessons17 Quizzes

3.

Basic Concepts and Theorems

Basic Concepts and Theorems

18 Lessons

18 Lessons

Examine key distributed systems concepts: partitioning, replication, algorithms, CAP theorem, consistency, and isolation.

4.

Distributed Transactions

Distributed Transactions

2 Lessons

2 Lessons

Break down complex ideas in distributed transactions and their challenges across multiple nodes.

5.

Achieving Isolation

Achieving Isolation

6 Lessons

6 Lessons

Map out the steps for achieving isolation in concurrent transactions using various control mechanisms.

6.

Achieving Atomicity

Achieving Atomicity

5 Lessons

5 Lessons

Focus on achieving atomicity in distributed transactions through 2PC, 3PC, and quorum protocols.

7.

Concluding Distributed Transactions

Concluding Distributed Transactions

2 Lessons

2 Lessons

Test your understanding of distributed transactions, ACID guarantees, and the saga pattern.

8.

Consensus

Consensus

12 Lessons

12 Lessons

Learn how to use consensus algorithms like Paxos and Raft in distributed systems.

9.

Time

Time

5 Lessons

5 Lessons

Walk through time handling in distributed systems, addressing event order without global clocks.

10.

Order

Order

10 Lessons

10 Lessons

Work your way through event ordering, causality, and time synchronization in distributed systems.

11.

Networking

Networking

9 Lessons

9 Lessons

Grasp the fundamentals of networking layers, protocols, and their roles in distributed systems.

12.

Security

Security

7 Lessons

7 Lessons

Take a look at key security challenges in distributed systems, including authentication, confidentiality, and integrity.

13.

Security Protocols

Security Protocols

5 Lessons

5 Lessons

Follow the process of ensuring secure communication and validating entities in distributed systems.

15.

Case Study 1: Distributed File Systems

Case Study 1: Distributed File Systems

5 Lessons

5 Lessons

Step through the design, operations, and consistency models of distributed file systems.

16.

Case Study 2: Distributed Coordination Service

Case Study 2: Distributed Coordination Service

6 Lessons

6 Lessons

Get started with Zookeeper for distributed coordination, ensuring reliable, efficient service management.

17.

Case Study 3: Distributed Data Stores

Case Study 3: Distributed Data Stores

16 Lessons

16 Lessons

Examine diverse distributed data stores including their architecture, performance, and consistency guarantees.

18.

Case Study 4: Distributed Messaging System

Case Study 4: Distributed Messaging System

5 Lessons

5 Lessons

Break down the steps to optimize, configure, and ensure messaging guarantees in Kafka.

19.

Case Study 5: Distributed Cluster Management

Case Study 5: Distributed Cluster Management

3 Lessons

3 Lessons

Solve problems in distributed cluster management using Kubernetes components and resource coordination.

20.

Case Study 6: Distributed Ledger

Case Study 6: Distributed Ledger

5 Lessons

5 Lessons

Focus on Corda's distributed ledger, its architecture, data model, and ensuring backwards compatibility.

21.

Case Study 7: Distributed Data Processing Systems

Case Study 7: Distributed Data Processing Systems

10 Lessons

10 Lessons

Master distributed data processing with MapReduce, Apache Spark, and Apache Flink frameworks.

23.

Communication Patterns

Communication Patterns

4 Lessons

4 Lessons

Discover the logic behind communication patterns, data transfer, and models in distributed systems.

25.

Data Synchronization

Data Synchronization

3 Lessons

3 Lessons

Grasp the fundamentals of data synchronization, event sourcing, and Change Data Capture.

26.

Shared-nothing Architectures

Shared-nothing Architectures

2 Lessons

2 Lessons

Take a closer look at shared-nothing architectures, optimizing scalability, availability, and fault tolerance in distributed systems.

27.

Distributed Locking

Distributed Locking

2 Lessons

2 Lessons

Tackle distributed locking challenges and ensure safe operations using leases and fencing techniques.

28.

Compatibility Patterns

Compatibility Patterns

2 Lessons

2 Lessons

Master techniques for maintaining backwards compatibility in evolving distributed systems.

29.

Dealing with Failure

Dealing with Failure

6 Lessons

6 Lessons

Solve problems in handling and minimizing failures in distributed systems effectively.

31.

Concluding this Course

Concluding this Course

2 Lessons

2 Lessons

Go hands-on with performance, scalability, security, and practical applications in distributed systems.
Certificate of Completion
Showcase your accomplishment by sharing your certificate of completion.
Author NameDistributed Systems for Practitioners
Developed by MAANG Engineers
ABOUT THIS COURSE
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., consistency), and fosters thinking about trade-offs when designing distributed systems. Moreover, it provides plenty of additional resources for those who want to invest more time in gaining a deeper understanding of the theoretical aspects of distributed systems.
ABOUT THE AUTHOR

Dimos Raptis

Software Engineer with over a decade of experience writing software, an MEng in Electrical and Computer Engineering, an MSc in Software Engineering and a passion for building secure, robust and maintainable systems.

Learn more about Dimos

Trusted by 2.9 million developers working at companies

These are high-quality courses. Trust me the price is worth it for the content quality. Educative came at the right time in my career. I'm understanding topics better than with any book or online video tutorial I've done. Truly made for developers. Thanks

A

Anthony Walker

@_webarchitect_

Just finished my first full #ML course: Machine learning for Software Engineers from Educative, Inc. ... Highly recommend!

E

Evan Dunbar

ML Engineer

You guys are the gold standard of crash-courses... Narrow enough that it doesn't need years of study or a full blown book to get the gist, but broad enough that an afternoon of Googling doesn't cut it.

S

Software Developer

Carlos Matias La Borde

I spend my days and nights on Educative. It is indispensable. It is such a unique and reader-friendly site

S

Souvik Kundu

Front-end Developer

Your courses are simply awesome, the depth they go into and the breadth of coverage is so good that I don't have to refer to 10 different websites looking for interview topics and content.

V

Vinay Krishnaiah

Software Developer

Built for 10x Developers

No Passive Learning
Learn by building with project-based lessons and in-browser code editor
Learn by Doing
Personalized Roadmaps
The platform adapts to your strengths & skills gaps as you go
Learn by Doing
Future-proof Your Career
Get hands-on with in-demand skills
Learn by Doing
AI Code Mentor
Write better code with AI feedback, smart debugging, and "Ask AI"
Learn by Doing
Learn by Doing
MAANG+ Interview Prep
AI Mock Interviews simulate every technical loop at top companies
Learn by Doing

Free Resources

FOR TEAMS

Interested in this course for your business or team?

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