
จากเรื่อง Fallacies of distributed computing นั้น
ซึ่งอธิบาย 8(7+1) ข้อ ของเรื่องเข้าใจผิดเกี่ยวกับระบบ Distributed
มาดูในข้อแรกกันคือ The network is reliable (ความน่าเชื่อถือ)
ว่าเป็นอย่างไร มีปัญหาอะไร และ วิธีการแก้ไขทำอย่างไรบ้าง ?
มาเริ่มกันเลย
ระบบ network นั้นเกิดมาเพื่อพร้อมพังได้เสมอ
ยิ่งระบบงานมีการแบ่งแยกการทำงานต่าง ๆ ออกมา
แล้วต้องติดต่อสื่อสารกัน เช่น
- Frontend
- Backend
- Service ต่าง ๆ
- Database
- Caching
ปัญหาที่สามารถเกิดขึ้นได้ประกอบไปด้วย
- ปัญหาทางด้าน hardware
- ปัญหาทางด้าน software
- ปัญหาทางด้าน security
- ปัญหาของ environment ต่าง ๆ
- ปัญหาจากการโดนโจมตีระบบ

ดังนั้นในการออกแและพัฒนาระบบ รวมทั้งการทดสอบ
จำเป็นต้องวางแผนเพื่อรองรับมือปัญหาที่อาจจะเกิดขึ้น
เพื่อทำให้ระบบทำงานได้อย่างถูกต้อง และ มีความน่าเชื่อถือที่สูงขึ้น
ตัวอย่างของวิธีการแก้ไขหรือรับมือ เช่น
- Timeout
- Retry พร้อมกับ indempotent
- Circuite breaker
- Rate limit
- ถ้าเป็นระบบ queue ก็ต้องจัดการเรื่อง acknowledge ระหว่าง producer และ consumer ให้ดี หรือต้องจัดการพวก Dead letter queue เพื่อการันตีว่า message ต่าง ๆ สามารถส่งและรับได้อย่างถูกต้อง
ลองดูว่าระบบงานที่เราออกแบบได้วางแผนเรื่องเหล่านี้ไว้หรือไม่ ?