Sistemas distribuídos (múltiplos computadores trabalhando juntos por uma rede) trazem desafios significativos que não existem em sistemas de uma única máquina — falta de confiabilidade de rede, falhas parciais, consistência, coordenação e muito mais. Compreender isso é essencial para projetar sistemas em escala.
Por que sistemas distribuídos são difíceis
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.
