ระบบต้องตอบข้อผิดพลาดอย่างมีโครงสร้างโดยไม่เปิด stack trace หรือความลับ จึงพิจารณาว่า บริษัทกำลังเปรียบเทียบระหว่างการใช้ Monolithic Architecture กับ Microservices Architecture สำหรับ Startup ที่เพิ่งเริ่มต้น ข้อสรุปใดถูกต้องที่สุดตามหลักวิศวกรรมซอฟต์แวร์
กMonolithic ดีกว่าเสมอเพราะ Microservices มีความซับซ้อนโดยไม่จำเป็น โดยถือว่าเป็นแนวทางหลักที่หน่วยงานควรใช้ในทุกกรณี
ขทั้งสองสถาปัตยกรรมมีประสิทธิภาพเท่ากันและควรเลือกตามความชอบของทีม และใช้เป็นเกณฑ์เดียวสำหรับการดำเนินงานของหน่วยงานทั้งหมด
คMicroservices ดีกว่าเสมอเพราะรองรับการขยายตัวได้ดีกว่า โดยไม่ต้องพิจารณานโยบาย บทบาท หรือความเสี่ยงด้านข้อมูลเพิ่มเติม
งMonolithic เหมาะสำหรับ Startup ในช่วงต้นเพราะพัฒนาเร็วและจัดการง่ายกว่า ค่อยเปลี่ยนเป็น Microservices เมื่อขยายใหญ่
เฉลยอธิบาย
หลักการ 'You Aren't Gonna Need It' (YAGNI) และ 'Start Simple' สนับสนุนการเริ่มด้วย Monolithic สำหรับ Startup เพราะพัฒนาเร็ว Debug ง่าย Deploy ง่าย ค่าใช้จ่ายน้อย เมื่อระบบโตขึ้นและมีปัญหา Scaling จริงจึงค่อยแยกเป็น Microservices ตัวเลือก A ผิดเพราะ Microservices มีความซับซ้อนสูงในการบริหารจัดการ, ตัวเลือก C ไม่ถูกต้องเพราะแต่ละสถาปัตยกรรมเหมาะกับบริบทต่างกัน, ตัวเลือก D ผิดเพราะ Microservices มีประโยชน์สำหรับระบบใหญ่