Governance (Governance)

governance ส่วนใหญ่ที่เกี่ยวข้องกับ EDA ไม่ใช่เชิงโครงสร้าง (nonstructural) และต้องการ observability ในรูปแบบของ log ซึ่งเป็นส่วนหนึ่งของ governance mesh โดยรวม ขึ้นอยู่กับโครงสร้างพื้นฐานและสภาพแวดล้อม governance metric บางอย่างที่เกี่ยวข้องกับ EDA อาจต้องเก็บรวบรวมด้วยตนเอง

พื้นที่หลักสองด้านของ governance ในสไตล์นี้คือ static coupling ผ่านการจัดการ contract และ dynamic coupling ผ่านการเรียกแบบซิงโครนัส ทั้งสองแง่มุมนี้ถือเป็นความเสื่อมเชิงโครงสร้าง (structural decay) ใน EDA ดังนั้นจึงสำคัญที่จะต้องคอยจับตาดูมันไว้

จากมุมมองของ static coupling สถาปนิกสามารถตั้งค่า governance รอบๆ สิ่งต่างๆ เช่น อัตราการเปลี่ยนแปลงของ event payload contract และ stamp coupling โดยรวม การเปลี่ยน contract อาจมีความเสี่ยงสูงมากใน EDA เนื่องจากลักษณะ decoupled ของมัน การเปลี่ยน event contract โดยเฉพาะตัวที่ไม่มี schema ผูกไว้ อาจทำให้ event processor ปลายทางพังได้ นี่เป็นความเสี่ยงเฉพาะใน EDA เพราะมันยากมากที่จะทดสอบ end-to-end event flow ที่ไม่กำหนดแน่นอน

Stamp coupling (ดู “Event Payload” ) สามารถถูก govern ได้ด้วยการบันทึกและสังเกตอย่างต่อเนื่องว่าฟิลด์ไหนใน event contract ที่ไม่ถูกใช้โดย event processor ที่ตอบสนองต่อ event นั้น การสังเกตฟิลด์ที่ไม่ถูกใช้เหล่านี้ช่วยลดขนาด contract ลด bandwidth และช่วยจัดการ stamp coupling รวมถึงการเปลี่ยนแปลง event processor ที่ไม่จำเป็นที่ตามมา

จากมุมมองของ dynamic coupling สถาปนิกสามารถเขียน fitness function อัตโนมัติเพื่อสังเกตและติดตามการสื่อสารแบบซิงโครนัสระหว่าง event processor ผ่าน log และวิธีอื่นๆ ที่สังเกตได้ (เช่น source code annotation หรือการใช้ library ระบุตัวตนแบบ synchronous มาตรฐาน) การสื่อสารแบบซิงโครนัสใดๆ ใน event-driven architecture ควรถูกติดตามและพูดคุยกันเพื่อให้แน่ใจว่าจำเป็นจริง โดยเฉพาะถ้าใช้ domain หรือ dedicated database topology