Home/Glossary/Distributed System

Distributed System

A collection of independent computers that appear to users as a single coherent system.

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.