الأنظمة الموزعة (أجهزة كمبيوتر متعددة تعمل معاً عبر شبكة) تجلب تحديات كبيرة لا توجد في الأنظمة أحادية الآلة — عدم موثوقية الشبكة، والأعطال الجزئية، والاتساق، والتنسيق، وغير ذلك. فهم هذه التحديات ضروري لتصميم الأنظمة بحجم كبير.
لماذا الأنظمة الموزعة صعبة
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.
التحديات الرئيسية
NETWORK → unreliable, variable latency, partitions (can't assume messages arrive/are fast)
PARTIAL FAILURE → handle some components failing (detect, retry, recover); is it down or slow?
CONSISTENCY → keeping data consistent across nodes (CAP trade-offs; eventual consistency)
COORDINATION → consensus, distributed agreement, leader election (hard; e.g. Raft/Paxos)
ORDERING/time → no global clock; event ordering across nodes is hard
CONCURRENCY → many things happening at once; race conditions across nodes
IDEMPOTENCY → handle duplicate messages/retries safely
