Common Risks (ความเสี่ยงที่พบบ่อย)

ความเสี่ยงที่พบบ่อยที่เกี่ยวข้องกับ architecture นี้ ส่วนใหญ่เกิดจากการนำไปใช้ผิดวิธี

Volatile Core (Core ที่ผันผวน)

core ใน microkernel architecture ควรมีความเสถียรมากที่สุดเท่าที่จะเป็นไปได้หลังจากการพัฒนาช่วงแรก ส่วนหนึ่งของประโยชน์ของ style นี้คือมันแยกการเปลี่ยนแปลงไปไว้ที่ plug-in การสร้าง core ที่เปลี่ยนแปลงตลอดเวลาทำลายปรัชญาของ architecture นี้ แต่มันก็เป็นความผิดพลาดที่พบบ่อย มักเกิดจากสถาปนิกประเมินความผันผวนของ core ผิดพลาด แล้วต้องแก้ไขความผันผวนนั้นด้วยการ refactor ภายหลัง

Plug-In Dependencies (Dependency ของ Plug-in)

microkernel ทำงานได้ดีที่สุดเมื่อ plug-in สื่อสารกับ core system เท่านั้น ไม่สื่อสารกันเอง ระบบส่วนใหญ่ที่ใช้ plug-in แต่ไม่ใช่ microkernel มักใช้ dependency-free plug-in ซึ่งเป็น plug-in ที่ไม่มี dependency ใด ๆ นอกจาก core กล่าวอีกนัยหนึ่งคือ plug-in ไม่สื่อสารกันเอง จึงไม่มี shared dependency ที่ core ต้องแก้ไข อย่างไรก็ตาม application ที่ซับซ้อนของ microkernel architecture เช่น Eclipse IDE บางครั้งก็สร้าง dependency ระหว่าง component ทำให้ core ต้องแก้ไข transitive dependency conflict ระหว่างกัน

แม้จะเป็นไปได้ที่จะมี dependency แต่มันก็สร้างความซับซ้อนมากมายเกี่ยวกับการจัดการ transitive dependency จะเกิดอะไรขึ้นถ้า plug-in สองตัวต้องพึ่งพา core library เวอร์ชันต่างกัน core ต้องแก้ไข dependency เหล่านั้นและอำนวยความสะดวกให้การสื่อสารระหว่าง plug-in เวอร์ชันต่าง ๆ ทำงานได้ ใครก็ตามที่เคยปวดหัวกับการเพิ่ม plug-in ในสภาพแวดล้อมที่มี transitive dependency เข้ามาเกี่ยวข้อง จะเข้าใจความยุ่งยากในการคลี่คลายเวอร์ชันที่ขัดแย้งกันได้ดี ทางที่ดีที่สุดคือพยายามหลีกเลี่ยง dependency ระหว่าง plug-in ให้ได้มากที่สุดเท่าที่จะทำได้