Ở quy mô lớn, lỗi là không thể tránh khỏi — server crash, network lỗi, dependency trở nên không khả dụng. Thiết kế cho lỗi nghĩa là xây dựng những hệ thống chịu đựng và phục hồi từ lỗi một cách uyển chuyển thay vì giả định mọi thứ đều hoạt động. Điều này thiết yếu cho hệ thống reliable.
Thiết kế cho lỗi (tư duy)
GIẢ ĐỊNH mọi thứ SẼ lỗi → ở quy mô lớn, lỗi là BÌNH THƯỜNG, không phải ngoại lệ:
→ server crash, network partition, disk hỏng, dependency down, traffic tăng đột biến
→ thiết kế hệ thống để KỲ VỌNG và XỬ LÝ lỗi uyển chuyển (đừng giả định mọi thứ hoạt động)
→ "mọi thứ đều lỗi mọi lúc" → xây dựng resilience vào hệ thống.
