นักพัฒนาหลายคนมองว่าราคาทองวันนี้เป็นเพียงตัวเลขจากแหล่งข้อมูลเดียว แต่จากประสบการณ์ในการสร้างระบบให้แพลตฟอร์มการเงิน ตัวเลขนั้นต้องผ่าน pipeline หลายชั้นก่อนถึงหน้าจอผู้ใช้ ตั้งแต่ดึงข้อมูลจากสมาคมค้าทองคำ การทำความสะอาด การแคช และการผลักดันไปยังผู้ใช้หลายล้านคนพร้อมกัน ความล้มเหลวเล็กน้อยในชั้นใดชั้นหนึ่งอาจทำให้ผู้ใช้เห็นราคาเก่า หรือแย่กว่านั้นคือเห็นราคาผิดโดยไม่รู้ตัว
"ราคาทองวันนี้" ไม่ใช่แค่ตัวเลขบนจอ แต่คือผลลัพธ์ของ data pipeline หลายชั้นที่ต้องรับมือกับความผันผวนระดับวินาที บทความนี้จะเจาะลึกสถาปัตยกรรม ข้อผิดพลาดที่พบบ่อย และเครื่องมือที่เราใช้จริงใน production โดยไม่แตะคำแนะนำทางการเงิน แต่เน้นว่าระบบซอฟต์แวร์รองรับข้อมูลนี้อย่างไรให้เชื่อถือได้และปรับขนาดได้
ก่อนอื่นต้องเข้าใจธรรมชาติของข้อมูลราคาทองในประเทศไทย ข้อมูลอ้างอิงหลักมาจาก สมาคมค้าทองคำแห่งประเทศไทย ซึ่งประกาศราคาซื้อขายทองคำแท่งและทองรูปพรรณตามรอบเวลาที่กำหนด ความถี่การอัปเดตไม่สูงเท่าตลาดหุ้น แต่เมื่อมีข่าวใหญ่ ความต้องการเข้าถึงข้อมูลพร้อมกันอาจเพิ่มขึ้นเป็นสิบเท่า นี่คือโจทย์แรกของวิศวกรที่ต้องออกแบบระบบให้ทนต่อ burst traffic
ทำไมข้อมูลราคาทองวันนี้ถึงไม่ควรดึงตรงจากหน้าเว็บทุกครั้ง
หลายโปรเจกต์เริ่มต้นด้วยการ scrape หน้าเว็บหรือเรียก HTTP endpoint ตรง ๆ ทุกครั้งที่ผู้ใช้เปิดแอป วิธีนี้ใช้ได้ในช่วง prototype แต่พังทันทีเมื่อมีผู้ใช้หลักพันคนขึ้นไป เพราะแต่ละ request ไปตีต้นทางภายนอก เพิ่ม latency สะสมและเสี่ยงถูก block จาก rate limiting ที่ต้นทางกำหนดไว้ เจ้าของข้อมูลอย่างสมาคมค้าทองคำไม่ได้ออกแบบเซิร์ฟเวอร์ให้รับ request จากแอปของคุณโดยตรง
ยิ่งไปกว่านั้น ข้อมูลราคาทองวันนี้จากหน้าเว็บมักถูกฝังใน HTML ที่ต้อง parse ด้วย DOM selector ซึ่งเปราะบางมากเมื่อผู้ให้บริการเปลี่ยน layout เพียงเล็กน้อย ในการทำงานจริง เราเลิกพึ่งพา scraping และหันไปใช้ API ที่เสถียรกว่า หรือทำ reverse proxy ภายในองค์กรที่ดึงข้อมูลเป็นรอบแล้วเก็บไว้ใน cache แทน
การดึงตรงทุกครั้งยังทำให้คุณไม่สามารถควบคุม freshness ได้เลย หากต้นทางช้า ระบบของคุณก็ช้าตาม ความสม่ำเสมอของ response time เป็นหัวใจของแอปพลิเคชันการเงิน ผู้ใช้ไม่สนใจว่าต้นทางล่ม แต่สนใจว่าราคาที่เห็นยังถูกต้องและมาในเวลาไม่เกิน 2 วินาที อ่านต่อ: การออกแบบระบบแจ้งเตือนเหตุการณ์สำคัญทางเศรษฐกิจด้วย Kafka
สถาปัตยกรรมพื้นฐานของระบบติดตามราคาทองแบบเรียลไทม์
ระบบที่เราใช้งานจริงประกอบด้วยสามส่วนหลัก ได้แก่ ingestion service ที่ดึงข้อมูลจากแหล่งภายนอกเป็นรอบ, message broker สำหรับกระจายเหตุการณ์, และ serving layer ที่ตอบกลับผู้ใช้
Need a Custom App Built?
Let's discuss your project and bring your ideas to life.
Contact Me Today →