Go Temporal
Temporal for Fintech
คอร์สแบบกระชับ ตั้งแต่พื้นฐานจนถึงระดับ advanced เน้นเคสจริงของ fintech — เติมเงินเข้า wallet ผ่าน bank API, โอนเงินออกจาก wallet เข้าบัญชีธนาคาร, การทำ reconciliation และการ deploy อย่างปลอดภัยขณะที่มีธุรกรรมค้างอยู่ในระบบ
Course trail
เส้นทางการเรียน
Part 1 — Foundation
บทที่ 1Why Temporalปัญหา distributed transaction ในระบบ wallet, Durable Execution คืออะไร และ Temporal ไม่ได้แก้อะไรบ้างบทที่ 2ArchitectureCluster, Worker, Task Queue, Event History, Namespace และเส้นทางเดินของ 1 transactionบทที่ 3Hello Walletติดตั้ง CLI, สร้าง project Go, เขียน Top-up Workflow ตัวแรก, รัน Worker และใช้ CLI สั่งงานบทที่ 4Determinism & Replayหัวใจของ Temporal — ทำไม workflow ต้อง deterministic, สิ่งที่ห้ามทำใน Go และเครื่องมือ workflowcheck
Part 2 — Building
บทที่ 5Activities in DepthTimeout ทั้ง 4 ชนิด, Retry Policy, Heartbeat และ Idempotency กับ bank API ที่ตอบ timeoutบทที่ 6Error Handling & Sagaแยก retryable/non-retryable, compensation pattern สำหรับโอนเงินออกจาก wallet และ cancellationบทที่ 7Signal, Query, Updateยืนยัน OTP, ขอ approval จากทีม compliance, อ่านสถานะแบบ real-time และ Update-with-Startบทที่ 8Long-Running WorkflowsTimer, Selector, Child Workflow, Continue-As-New, Entity Workflow และ Schedule สำหรับ reconciliationบทที่ 9TestingUnit test, mock activity, time-skipping, ทดสอบ failure path และ Replay Test กัน non-determinism
Part 3 — Production & Advanced
บทที่ 10Versioning & Deployแก้โค้ดยังไงไม่ให้ธุรกรรมที่ค้างอยู่พัง — Patching API, Workflow Type และ Worker Deployment Versioningบทที่ 11Production & ObservabilityWorker tuning, metrics, logging, Search Attributes, Priority & Fairness สำหรับ multi-tenant และ payload limitsบทที่ 12Security & Complianceเข้ารหัส payload ด้วย Codec, การเชื่อมต่อแบบ mTLS/API key, Namespace isolation และมุมมอง PDPA/PCI-DSSบทที่ 13Advanced PatternsLocal Activity, Polling, Async Activity Completion, Session, Nexus และ Standalone Activitiesบทที่ 14Case Study & Checklistสถาปัตยกรรม wallet แบบครบวงจร, ตารางแก้ปัญหา, anti-patterns และ checklist ก่อน go-live
วิธีอ่านคอร์สนี้
- บทที่ 1–4 ควรอ่านเรียงลำดับ โดยเฉพาะ บทที่ 4 (Determinism) ซึ่งเป็นรากของทุกอย่างที่ตามมา
- บทที่ 5–9 อ่านสลับได้ตามงานที่ทำอยู่ แต่ บทที่ 5 เป็นพื้นฐานของบทที่ 6
- บทที่ 10–14 คือส่วนที่แยกระหว่าง "รันได้บนเครื่อง" กับ "รันได้จริงบน production ที่มีเงินจริง"
คอร์สนี้เหมาะกับ backend engineer ที่เขียน Go และดูแลระบบที่ต้อง ห้ามทำเงินหาย — ควรคุ้นเคยกับ Go, HTTP/gRPC API และฐานข้อมูล ไม่จำเป็นต้องรู้จัก Temporal มาก่อน
ข้อจำกัดและการอ้างอิง
โปรดอ่านก่อนนำไปใช้จริง
- โค้ดตัวอย่างทั้งหมดเป็น Go SDK (
go.temporal.io/sdk) เขียนเพื่อสอนแนวคิด จึงตัดรายละเอียดอย่าง config, dependency injection และ error wrapping ออกไปบางส่วน ไม่ควรคัดลอกไปใช้ production โดยไม่ review - ฟีเจอร์ที่ยังเป็น Public Preview ถูกกำกับไว้ในเนื้อหา — API อาจเปลี่ยนได้ ให้ยืนยันกับเอกสารของเวอร์ชันที่คุณใช้จริงเสมอ
- ส่วนที่เกี่ยวกับ compliance (PDPA, PCI-DSS, BOT) ในบทที่ 12 เป็น ข้อพิจารณาเชิงวิศวกรรม ไม่ใช่คำแนะนำทางกฎหมาย — ต้องผ่านการตรวจสอบจากทีม compliance และ security ขององค์กรก่อนเสมอ
อ้างอิงหลัก: Temporal Platform Documentation · Go SDK API reference · temporalio/samples-go