Team Topology Considerations (ข้อควรพิจารณาเรื่อง Team Topology)
EDA ถือเป็นสถาปัตยกรรมแบบ technically partitioned เป็นส่วนใหญ่ เนื่องจากมี artifact จำนวนมากที่ประกอบเป็นแต่ละ domain: event processor หลายตัว, event channel, message broker และอาจมีฐานข้อมูล ขึ้นอยู่กับ database topology ถึงกระนั้นมันก็ยังทำงานได้ดีเมื่อทีมมีการจัดกลุ่มตาม domain (เช่น cross-functional team ที่มีความเชี่ยวชาญเฉพาะทาง) ที่กล่าวมานี้ team topology บางประเภท (ดู “Team Topologies and Architecture” ) อาจพบว่า EDA ท้าทาย
ต่อไปนี้เป็นข้อควรพิจารณาเกี่ยวกับความสอดคล้องระหว่าง team topology เฉพาะเหล่านี้กับ EDA:
Stream-aligned teams
ขึ้นอยู่กับขนาดของระบบ stream-aligned team อาจพบว่าตัวเองประสบปัญหาในการ implement การเปลี่ยนแปลงตาม domain เนื่องจากลักษณะ decoupled ของ event processor เนื่องจาก domain และ subdomain ใน EDA มักถูก implement ด้วย event processor และ derived event หลายตัว stream-aligned team อาจพบว่ามันท้าทายที่จะเข้าใจส่วนที่เคลื่อนไหวเหล่านี้ทั้งหมด ตัวอย่างเช่น การเพิ่มขั้นตอนเข้าไปใน order-placement workflow อาจต้องเปลี่ยน event processor หลายตัว รวมถึงการปรับโครงสร้างวิธี (และเวลา) ที่ derived event ที่มีอยู่ถูก trigger ยิ่ง event-driven architecture ใหญ่และซับซ้อนมากเท่าไร stream-aligned team ก็จะยิ่งทำงานได้อย่างมีประสิทธิภาพน้อยลงเท่านั้น
Enabling teams
เนื่องจากการ integration ที่จำเป็นระหว่าง event processor ตาม derived event และ contract ของมัน enabling team จึงทำงานได้ไม่ดีใน event-driven architecture การทดลองและประสิทธิภาพโดย enabling team ภายใน stream หนึ่งสามารถรบกวนความเข้าใจและการจัดการ event flow โดยรวมของ stream-aligned team ได้ และมักต้องการการประสานงานมากเกินไประหว่าง stream-aligned team กับ enabling team
Complicated-subsystem teams
Complicated-subsystem team ทำงานได้ดีกับ EDA เนื่องจากลักษณะ decoupled และอะซิงโครนัสของมัน การประมวลผลที่ซับซ้อนสามารถแยกออกได้ง่ายผ่าน event processor ที่แยกกัน และ complicated-subsystem team สามารถโฟกัสไปที่ตรงนั้นได้ โดยปล่อยให้การประมวลผลที่ไม่ซับซ้อนเป็นหน้าที่ของ stream-aligned team เนื่องจาก event processor ถูก decoupled แบบ dynamic สูง stream-aligned team จึงต้องประสานงานกับ complicated-subsystem team เฉพาะเรื่อง static event-payload contract และ derived event เท่านั้น
Platform teams
ใน EDA นักพัฒนาสามารถใช้ประโยชน์จาก platform-teams topology ได้ด้วยการใช้ tool, service, API และ task ร่วมกัน ซึ่งส่วนใหญ่เป็นผลมาจากลักษณะ technically partitioned ของ EDA สิ่งนี้เป็นจริงโดยเฉพาะถ้าทีมปฏิบัติต่อส่วนที่เกี่ยวข้องกับโครงสร้างพื้นฐานของ EDA (เช่น message broker, event hub, event bus และ artifact อื่นๆ ของ event channel) ในฐานะสิ่งที่เกี่ยวข้องกับ platform