Architecture View: Data Pipeline (ตัวเก่า)

*NOTE: กลไกตัวนี้เลิกใช้แล้ว เนื่องจากเวอร์ชั่นปัจจุบันได้แยกโมเดล ML/DL/RL ออกไป โดยมี REST API มาครอบ เพื่อความสะดวกในการจัดการโมเดล ML/DL/RL มากขึ้น แต่บทความนี้ผมไม่ได้ลบ เนื่องจากเก็บไว้ให้ศึกษา และเผื่อนำบางส่วนมาใช้หรือพัฒนาต่อยอดได้ในอนาคต

นั่งออกแบบที่ร้าน FU.5 ในตำนานของเรา

กลไกส่วน distributed data pipeline using asynchronous messaging, dataset mapping และสรุป use case ของการใช้ data คร่าวๆ ทั้งส่วน price, indicators, features, trade dataกลไกนี้สามารถรันแบบ local บนเครื่องเดียวกับ frontend robot (MT4/5, cTrader, Amibroker) และ backend robot (Python) ได้ หรือจะแบ่งส่วนกระจายรันหลายเครื่องก็ได้

Data Joint in Data Pipeline

เวลาออกแบบสถาปัตยกรรมระบบ ผมชอบกำหนด ‘ข้อต่อ’ ไว้หลายจุดเพื่อใช้เป็นจุดเชื่อมต่อส่วนต่างๆ ในโครงสร้างสถาปัตยกรรม ไม่ให้มี coupling ต่อกันโดยตรง

เช่น ระหว่างเลเยอร์กับเลเยอร์, ระหว่าง subsystem กับ subsystem, ระหว่างระบบกับระบบ, ระหว่าง domain กับ domain โดยเฉพาะสิ่งที่อยู่กันคนละ boundary แล้วต้อง interoperate กัน ก็จะไม่ให้มันคุยกันตรงๆ ต้องคุยกันผ่าน ‘ข้อต่อ’ เท่านั้น (ยอมช้านิดแต่ยืดหยุ่น)

ผมชอบเรียกจุดข้อต่อนี้ว่า ‘joint’ เช่น จุดที่ใช้ pattern พวก Adapter, Proxy, Facade, Front Controller, Proactor, Reactor, Gateway, DAO, Interceptor,…