Technopedia

The technologist’s encyclopedia

Distributed Systems

Distributed systems study how to coordinate computation across multiple machines that communicate over a network. They are relevant whenever a single machine cannot provide the required throughput, availability, or data capacity.

Utility

Details

Distributed systems sit at the rightmost end of the computation pipeline: they take the executable programs running on individual machines (produced by the hardware and OS layers) and coordinate them into a single logical system. The fundamental challenge is that the network is unreliable: messages are lost, delayed, or duplicated; nodes crash; and the network can partition. The design space is governed by the CAP theorem (a partitioned system must choose between consistency and availability) and the FLP impossibility (no deterministic consensus algorithm can tolerate even one crash in an asynchronous system).

History

Classes

PageCore objectKey metricBoundary
ConcurrencyThreads, processes, locks, message passingThroughput, contention, deadlock freedomHow to coordinate execution within a single machine; does not model the network
AsynchronyEvent loop, async/await, non-blocking I/OConnections per thread, I/O multiplexing ratioHow a single thread multiplexes many I/O operations; sub-topic of Concurrency
Message passingMessages, channels, queues, RPC, publish/subscribeLatency, throughput, ordering guaranteesHow concurrent activities exchange data asynchronously; does not model how messages are physically transmitted
ParallelismThreads, processes, SIMD, data-parallel executionSpeedup, efficiency, Amdahl's lawHow to split work across execution units on one machine; does not model coordination across machines
NetworksProtocols, sockets, routing, TLSLatency, throughput, reliabilityHow messages are transmitted between machines; does not model the application logic
Queueing and LatencyQueues, Little's law, tail latency, backpressure, rate limitingThroughput, tail latency, saturation thresholdHow load translates into latency and when a system saturates; does not model how to add capacity
Scaling StrategiesLoad balancers, caching, CDNs, sharding, autoscalingThroughput, cost per requestHow to add capacity (vertical or horizontal); does not model fault tolerance or consistency
Network partitionsFLP, CAP, consensus (Paxos, Raft), consistency modelsAvailability, consistency, partition toleranceHow to agree on state when the network partitions; does not model the physical network or the application
RobustnessReplication, quorum, failover, RPO/RTO, circuit breakersRPO, RTO, availabilityHow to survive failures; does not model the consensus protocol or the network
Adversarial failureByzantine faults, PBFT, Sybil attacksByzantine tolerance (3f+1), identity costHow to survive malicious nodes; does not model crash faults or the network

Authoritative sources