Topic 25 – Introduction to Distributed Systems

Why do I need to learn about distributed systems?

Distributed systems provide the foundation for understanding the theories and techniques behind cloud computing and blockchain technology.

The architectures, protocols, and algorithms introduced in distributed systems are also necessary for creating complex software.

What can I do after finishing learning distributed systems?

You will be able to design software that can

  • tolerate faults,
  • shard data,
  • handle massive number of requests, and
  • perform expensive computations.

You will also be prepared to learn about cloud computing and blockchain technology.

What should I do now?

First, please audit this course to familiarize yourself with the core concepts and protocols of distributed systems: Distributed Systems, UC Santa Cruz Baskin School of Engineering, 2021.

Afterward, please audit the course and read the books below to learn how to design large-scale distributed systems:

Terminology Review:

  • Fault Tolerance
  • Consistency
  • System Models
  • Failure Detectors
  • Communication
  • Ordering
  • State Machine Replication
  • Primary-Backup Replication
  • Bully Algorithm
  • Ring Election
  • Multi-Leader Replication
  • Leaderless Replication
  • Cristian’s Algorithm
  • Berkeley Algorithm
  • Lamport Clocks
  • Vector Clocks
  • Version Vectors
  • Chain Replication
  • Consensus
  • FLP
  • Raft
  • Paxos
  • Viewstamped Replication
  • Zab
  • Consistent Hashing
  • Distributed Transactions
  • ACID
  • Two-Phase Commit
  • Three-Phase Commit
  • Serializability
  • Two-Phase Locking
  • Distributed Locks
  • CAP
  • Consistency Models
  • Linearizability
  • Distributed Architectures
  • Distributed Programming
  • Hadoop
  • Spark
  • Tensorflow
  • PyTorch
  • Kubernetes
  • Bitcoin
  • Smart Contracts

After finishing distributed systems, please click on Topic 26 – Introduction to Cloud Computing to continue.

 

(Visited 20 times, 1 visits today)

Leave a Reply