อ่านเอกสารแล้วไปเจอคำว่า Pinball Architecture
ก็ได้แต่สงสัยว่าคืออะไร
พอมีเวลาว่างก็ลองมาหาข้อมูลหน่อยว่า
คืออะไร
หมายถึงอะไรบ้าง

ไปเจอบทความน่าสนใจเรื่อง Is Your Microservices Architecture More Pinball or More McDonald’s? ซึ่งอธิบายไว้ดังนี้

เป็นรูปแบบหนึ่งของการออกแบบระบบ
โดยจะทำงานแบบ top-down คือ
ผู้ใช้งานจะใช้งานผ่าน product
จากนั้นก็จะส่ง request ไปยังส่วนงานต่าง ๆ
ที่แยกออกจากกันตามแนวคิด Small service (Single Responsibility)
ทำให้มี service มากมายในการทำงานจาก request หนึ่ง ๆ
ส่งผลให้เกิดภาพที่ซับซ้อนดังรูป (Request/Response model)

สิ่งที่ตามมาคือ การดูการทำงานของ service ทั้งหมด
ทั้ง metric, tracing และ logging ว่าจะต้องจัดการอย่างไร
เพื่อระบุจุดเกิดเหตุของปัญหาได้อย่างทันท่วงที
เป็นรูปแบบที่ดูดีนะ
แต่เมื่อทำการเพิ่ม feature เข้าไป
จะพบว่ามักจะมีความซับซ้อนและงานที่เยอะมาก ๆ
นั่นหมายความว่า มันอาจจะดี แต่น่าจะไม่ดีสำหรับเราหรือไม่นะ ?

ผลกระทบจากความสัมพันธ์ ของแต่ละ service เป็นอย่างไร
ถ้ามีบาง server พังละ จะเกิดอะไรขึ้น
เช่นส่วนอื่น ๆ ก็พังไปด้วยหรือไม่ ?

หรือถ้าจะปรับปรุงเรื่อง performance ละ
จะทำการปรับอย่างไรบ้าง
เพราะว่าสัมพันธ์กันไปหมดเลย ?

นั่นหมายความว่า เรากำลังสร้างปัญหาหรือแก้ไขปัญหา ?