
ระบบงานต่าง ๆ นั้น ยิ่งนานไประบบยิ่งมีส่วนการทำงานต่าง ๆ เยอะขึ้น ซับซ้อนมากขึ้น
ทั้ง 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 …
จากที่ใช้งานมานั้น ง่ายมาก ๆ ครับ