Distributed Systems for Practitioners

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, while accessing additional theoretical resources.

Beginner

167 Lessons

9h 30min

Certificate of Completion

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

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.

Show more

Course Content

1.

Before Getting Started

Get familiar with the basics of distributed systems and core concepts for beginners.
4.

Distributed Transactions

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

Achieving Isolation

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.
7.

Concluding Distributed Transactions

2 Lessons

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

Time

5 Lessons

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

Networking

9 Lessons

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

Security

7 Lessons

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

Security Protocols

5 Lessons

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

From Theory to Practice

1 Lesson

Master the steps to categorizing distributed systems and applying previously learned principles.
15.

Case Study 1: Distributed File Systems

5 Lessons

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

Case Study 2: Distributed Coordination Service

6 Lessons

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

Case Study 4: Distributed Messaging System

5 Lessons

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

Case Study 5: Distributed Cluster Management

3 Lessons

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

Case Study 6: Distributed Ledger

5 Lessons

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

Case Study 7: Distributed Data Processing Systems

10 Lessons

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

Practices & Patterns

1 Lesson

Get familiar with fundamental practices and patterns for effective distributed systems.
23.

Communication Patterns

4 Lessons

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

Coordination Patterns

1 Lesson

Break apart key coordination patterns, orchestration vs. choreography, and ensure atomic operations.
25.

Data Synchronization

3 Lessons

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

Shared-nothing Architectures

2 Lessons

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

Distributed Locking

2 Lessons

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

Compatibility Patterns

2 Lessons

Master techniques for maintaining backwards compatibility in evolving distributed systems.
29.

Dealing with Failure

6 Lessons

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

Distributed Tracing

1 Lesson

Get started with distributed tracing, logging execution, and optimizing performance in complex systems.
31.

Concluding this Course

2 Lessons

Go hands-on with performance, scalability, security, and practical applications in distributed systems.

Course Author

Trusted by 1.4 million developers working at companies

Anthony Walker

@_webarchitect_

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

Souvik Kundu

Front-end Developer

Eric Downs

Musician/Entrepeneur

Anthony Walker

@_webarchitect_

Evan Dunbar

ML Engineer

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