Gedistribueerde systemen (meerdere computers die samen over een netwerk werken) brengen aanzienlijke uitdagingen met zich mee die niet bestaan in single-machine systemen — netwerkbetrouwbaarheid, gedeeltelijke fouten, consistentie, coördinatie en meer. Het begrijpen hiervan is essentieel voor het ontwerpen van systemen op schaal.
Waarom het belangrijk is
Multiple machines communicating over a NETWORK introduce fundamental challenges:
→ the NETWORK is unreliable (latency, packet loss, partitions) and not instant
→ PARTIAL FAILURES → some parts fail while others work (vs all-or-nothing on one machine)
→ no shared memory/clock → coordination is hard
→ "the network is reliable" etc. are FALLACIES — distributed systems break these assumptions.
