分布式系统概述 Distributed Systems Introduction
I note down the critical concept of distributed system.
There may be mistakes, feel free to discuss with me here issue.
Why Distributed Systems?
Dsitributed System has been used broadly in real life. It is necessary for the current internet world, such as Google, Meta, Tiktok, etc.

The Challenges/Capabilities of Distributed Systems
- Failure Tolerance
- Managing Distributed State
- Scalability
- Architecture and Design
Thought Experiement: Two General's Problem
In the experiment, two generals are only able to communicate with one another by sending a messenger through enemy territory. The experiment asks how they might reach an agreement on the time to launch an attack while knowing that any messenger they send could be captured.
From this thought experiement, we know that It is impossible to reach a final agreement with unstable communication channel.
But we can solve it in engineering ways by bypassing some assumptions and allowing trade-offs. There are lots of solutions published, for example, the Consensus Algorithm.
A quick tour of Distributed System [Video]
『Made in Heaven』分布式系统要开始加速了,43秒带你速通 ! 分布式系统概念 第01期

CAP Theorem

RPC Semantics

Logical Lock

Distributed State

Consistency

Consensus Protocol

Byzantine Fault Tolerance

Distributed Transaction

Distributed File System

Distributed Storage

Distributed Computing

Distributed Machine Learning

Reference
- Two General's Problem, Wiki
- At most once, at least once, exactly once
- Time, Clock, and the Ordering of Events in a Distributed System
- Impossibility of Distributed Consensus with One Faulty Process
- Paxos Made Simple
- Paxos Made Moderately Complex
- In Search of an Understandable Consensus Algorithm
- Practical byzantine fault tolerance
- Spanner: Google’s Globally-Distributed Database
- etc