بڑے پیمانے پر، ناکامیاں ناگزیر ہیں — سرورز کریش ہوتے ہیں، نیٹ ورکس ناکام ہوتے ہیں، منحصر خدمات دستیاب نہیں رہتی۔ ناکامی کے لیے ڈیزائن کرنا کا مطلب ایسے نظام بنانا ہے جو ناکامیوں کو برداشت کرے اور ان سے شائستگی سے بحال ہو بجائے یہ فرض کرنے کے کہ سب کچھ کام کرتا ہے۔ یہ قابل اعتماد نظاموں کے لیے ضروری ہے۔
ناکامی کے لیے ڈیزائن (ذہن کی حالت)
ASSUME things WILL fail → at scale, failures are NORMAL, not exceptional:
→ servers crash, networks partition, disks fail, dependencies go down, traffic spikes
→ design systems to EXPECT and HANDLE failures gracefully (not assume everything works)
→ "everything fails all the time" → build resilience in.
