ระบบงานต่าง ๆ นั้น ยิ่งนานไประบบยิ่งมีส่วนการทำงานต่าง ๆ เยอะขึ้น ซับซ้อนมากขึ้น
ทั้ง product, domain, service และ messaging ต่าง ๆ
ดังนั้นเราจะจัดการสิ่งต่าง ๆ เหล่านี้อย่างไร
เพื่อให้เรารู้และเข้าใจภาพรวมของระบบมากยิ่งขึ้น
สามารถ maintain ได้ง่าย
สามารถหาได้ง่าย ทีมต่าง ๆ ทำงานร่วมกันได้ดีขึ้น
รวมทั้งวิเคราะห์ผลกระทบต่าง ๆ จากการแก้ไขได้ดีขึ้น
เราจะทำอย่างไรดี ?

หนึ่งในแนวทางคือ Centralize system นั่นเอง
มีระบบหนึ่งที่น่าสนใจคือ EventCatalog
แบ่งเป็นหลาย ๆ กลุ่มดังนี้

  • Boundary context map
  • Domain
  • Service
  • Event
  • Command
  • Query
  • Channel
  • Flow

ในแต่ละส่วนจะแสดงแบบสวย ๆ และเข้าใจได้ง่าย
ยกตัวอย่างเช่น Order service จะมีส่วนประกอบอะไรบ้าง
แสดงดังรูป

ในส่วนของ Event หรือ message จะพบว่า
ใช้งานที่ queue/topic อะไร
ใครบ้างที่เป็น producer และ consumer

โดย EventCatalog นั้นจะสนับสนุน

  • OpenAPI หรือ Swagger
  • AsyncAPI
  • Backstage
  • Amazon EventBridge

นั่นหมายความว่า เราสามารถ generate ข้อมูล
เข้ามายัง EventCatalog ผ่าน plugin ที่เรียกว่า generator ได้เลย
แสดงรูปการทำงานดังรูป

ลองใช้งานกันดูครับ Getting start …
จากที่ใช้งานมานั้น ง่ายมาก ๆ ครับ