NOTE
1.1 Distributed Systems
An overview of why distributed systems are needed and how replication, partitioning, consistency, transactions, communication, and common distributed components fit together.
This is a historical learning note and may contain outdated or incomplete understanding.
1. What Is a Distributed System?
A distributed system is composed of multiple independent processes or nodes that communicate over a network and cooperate to provide a service.
2. Why Do We Need Distributed Systems?
A single machine has finite compute, storage, and I/O capacity and is also a single failure domain. Distributing a system across multiple machines can improve scalability, throughput, availability, and fault tolerance, although it introduces coordination and consistency problems.
3. How Do We Design a Distributed System?
3.1 Replication
Distributed-System Replication
3.2 Partitioning
Distributed-System Partitioning
4. Theoretical Foundations
5. Communication
6. Service State
7. Architecture Patterns
Microservices are one common architectural style for distributed services. The related note is not yet public.