แพลตฟอร์ม Payment Gateway
gateway รับเงินฝากผ่านพร้อมเพย์และโอนธนาคารสำหรับตลาดไทย ทำ reconciliation อัตโนมัติในระดับ production
แพลตฟอร์ม ~15 services กับ 6 portal สำหรับผู้ดูแลระบบและร้านค้า สร้างคนเดียวทั้งหมด ดีไซน์การจับคู่รายการและการจัดเส้นทางบัญชีอยู่ภายใต้ NDA — สิ่งที่แสดงคือโครงร่างของระบบและพื้นผิวโดยรอบ ไม่ใช่กลไกภายใน
เงินฝากผ่านพร้อมเพย์และโอนธนาคารสำหรับตลาดไทยต้อง reconcile ได้โดยไม่มีคนอยู่ในลูป ผ่าน portal ร้านค้าและผู้ดูแลระบบหกตัว เป้าหมาย: จับคู่เงินฝากอัตโนมัติเกิน 99% และจากเงินเข้าถึง webhook ภายใน 60 วินาทีที่ p95
สร้างคนเดียว: ทุก commit ใน ~17 repo มาจากคนเดียว วางแผนไว้ ~17 สัปดาห์จาก kickoff ถึง GA บน EKS cluster เล็ก ๆ ที่เหลือที่ว่างราวสาม pod รายละเอียดภายในของลูกค้าอยู่ภายใต้ NDA จึงแสดงดีไซน์การจับคู่รายการและการจัดเส้นทางบัญชีไม่ได้
- เลือกสร้าง dashboard ด้วย Next.js เองแทน Grafana และ ArgoCD เพราะสองตัวนั้นกินหกถึงเจ็ด pod ขณะที่ cluster เหลือที่ว่างราวสาม pod ตัว dashboard อ่าน Prometheus ฝั่ง server ไม่เปิดออกอินเทอร์เน็ต และปุ่ม Release ของมันทำหน้าที่ deploy ไปด้วย
- แยก Go worker ตัวเดียวออกเป็น binary ingest, webhook และ worker ที่ build จาก image เดียวกัน เพราะเดิมบั๊กฝั่ง ingest ตัวเดียวทำให้ webhook การหมดอายุของรายการจ่าย และ snapshot หยุดพร้อมกัน และการแยกนี้ไม่ต้องเพิ่ม repo, CI หรือ secret ใหม่
reconciliation เงินฝากอัตโนมัติ ทำงานอยู่ในระดับ production การยิง k6 ที่ 50 VU เจอ lock contention จน request ล้ม 92% จึงเปลี่ยนจาก lock เป็น optimistic retry เมื่อชน unique constraint และการปรับ index ที่ข้อมูล ~300k แถว ทำให้ query ที่หนักที่สุดลดจาก 29.8 ms เหลือ 0.06 ms