Orthogonal Coupling (Orthogonal Coupling)
ในทางคณิตศาสตร์ เส้นสองเส้นจะเรียกว่า orthogonal ถ้าตัดกันเป็นมุมฉาก ซึ่งก็หมายถึงความเป็นอิสระต่อกันด้วย ในทาง software architecture ส่วนสอง ส่วนของ architecture อาจจะ orthogonally coupled กันได้ นั่นคือมีจุดประสงค์ที่แตกต่างกันสองอย่าง แต่ก็ยังต้องมาบรรจบกันเพื่อสร้าง solution ที่สมบูรณ์ ตัวอย่างที่ชัดเจนจากบทนี้คือ operational concern อย่าง monitoring ซึ่งจำเป็นแต่เป็น อิสระจาก domain behavior เช่น catalog checkout การรู้จัก orthogonal coupling ช่วยให้สถาปนิก หาจุดตัดที่ทำให้เกิดความพัวพันระหว่าง concern น้อยที่สุดได้
แม้ Sidecar pattern จะให้ abstraction ที่ดี แต่ก็มี trade-off เหมือน architectural approach อื่น ๆ ทุกแบบ ดังแสดงใน Table 20-1
Table 20-1. Trade-offs for the Sidecar and Service Mesh patterns | Advantages | Disadvantages | | --- | --- | | ให้วิธีที่สม่ำเสมอในการสร้าง isolated coupling | ต้อง implement sidecar แยกตาม platform | | ช่วยให้การประสานงาน infrastructure สม่ำเสมอ | component ของ sidecar อาจใหญ่/ซับซ้อนขึ้น | | เป็นเจ้าของโดยทีม, รวมศูนย์, หรือผสมผสานกัน | implementation “drift” ระหว่างทีมที่เป็นอิสระต่อกัน |
ทั้ง Hexagonal และ Service Mesh pattern ต่างแสดงให้เห็นวิธี implement reuse pattern เพื่อแยก domain ออกจาก operational concern การ implement แบบ Hexagonal เป็นแบบ general purpose ในขณะที่ Service Mesh เหมาะกับ microservices และ distributed architecture อื่น ๆ มากกว่า สิ่งสำคัญสำหรับสถาปนิกคือต้อง ระบุ pattern ก่อน—นั่นคือการแยกออกจากกัน—แล้วค่อยตัดสินใจว่าจะ implement มันอย่างไรให้เหมาะกับ architecture ของตนเอง