Computer ScienceAlso called: "distributed computing", "distributed architecture"
Distributed systems enable scalability, fault tolerance, and global reach.
Key characteristics
- No shared memory: Computers communicate via messages.
- Concurrency: Multiple processes run simultaneously.
- Failure independence: One node failing doesn't crash the system.
- Geographic distribution: Nodes can be worldwide.
Challenges
- Clock synchronization: No global clock.
- Consensus: Agreement on shared state (Paxos, Raft).
- Partition tolerance: Network splits between nodes.
- Eventual consistency: Data takes time to propagate.
Design patterns
- Microservices architecture.
- Leader election.
- Replication and sharding.
- Message queues (Kafka, RabbitMQ).
- Distributed caching (Redis, Memcached).
Examples
- Google Search (distributed indexing).
- Netflix (global streaming).
- Blockchain (distributed ledger).
- DNS (distributed name resolution).
CAP theorem
- Choose 2 of 3: Consistency, Availability, Partition tolerance.