# Trigger.dev คืออะไร? คู่มือ Background Jobs & Workflow Orchestration สำหรับ Next.js + Laravel 2026
ทุกระบบที่โตขึ้นจะต้องเจอกับ "งานที่รันนานเกิน HTTP timeout" ไม่ว่าจะเป็นการส่งอีเมล batch 10,000 ฉบับ, generate รายงาน PDF, หรือเรียก AI API ซ้อนกันหลายขั้น ปัญหาเหล่านี้ทำให้ทีม Dev ของ SME ไทยต้องประกอบ Queue System จาก Bull, BullMQ, Sidekiq, Resque หรือ Laravel Queue ซึ่งใช้เวลาตั้งค่ามากแถมยังต้องจัดการ Redis Worker, Retry Logic และ Monitoring แยกอีก
Trigger.dev เป็น Open-Source Background Jobs Platform ที่ออกแบบมาให้นักพัฒนา TypeScript เขียน Background Job เหมือนเขียนฟังก์ชันธรรมดา ไม่ต้องสร้าง Worker, Queue และ Cron แยกต่างหาก รองรับ Long-running tasks สูงสุด 1 ชั่วโมงต่อ Task และ Workflow ที่ซับซ้อน เช่น Wait, Retry, Subtask โดยมีทั้ง Cloud และ Self-hosted ให้เลือก
ในบทความนี้คุณจะได้เรียนรู้ Architecture ของ Trigger.dev v3, ใช้งานกับ Next.js และเชื่อมต่อกับ Laravel API พร้อมเปรียบเทียบกับทางเลือกอื่นเพื่อเลือกใช้ให้เหมาะกับ SME ไทย
Trigger.dev v3 คืออะไร? Architecture ที่ต่างจาก Bull/Sidekiq
Trigger.dev v3 เปลี่ยน Architecture ใหม่หมดจาก v2 โดยใช้ Run Engine ที่จัดเก็บสถานะของแต่ละ Task ใน PostgreSQL พร้อม Snapshotting ทำให้ Task ที่รันค้างหลายนาที-ชั่วโมงสามารถ Resume ต่อได้ทันทีหลัง Worker Crash ต่างจาก Bull/BullMQ ที่หาก Worker ตายระหว่างรัน Task อาจเสีย state และต้องเริ่มใหม่ ส่งผลกระทบต่อข้อมูลการเงินและ business logic ที่ critical
จุดเด่นที่ Bull/Sidekiq ไม่มีคือ Concurrency Control แบบ per-key เช่น "ทุก user รันพร้อมกัน 1 task เท่านั้น" ตั้งค่าได้ทันทีโดยไม่ต้องเขียน distributed lock เอง และ Realtime Subscription ที่ Frontend สามารถ subscribe ดูสถานะ Task ผ่าน WebSocket ได้โดยไม่ต้อง polling
| Feature | Trigger.dev v3 | BullMQ + Redis | Sidekiq | Laravel Queue |
|---------|----------------|----------------|---------|---------------|
| Long-run > 15 min | รองรับ | ยาก | ยาก | ขึ้นอยู่กับ driver |
| State persistence | PostgreSQL auto | ต้องทำเอง | Redis (volatile) | ต้องทำเอง |
| Realtime UI | WebSocket built-in | ไม่มี | ไม่มี | ต้องใช้ Reverb |
| TypeScript-first | ใช่ | ได้ | ไม่ใช่ | ไม่ใช่ |
| Self-host docker | รองรับ (free) | ฟรี | Pro paid | ฟรี |
วิธีใช้งานกับ Next.js (Step-by-Step)
ขั้นตอนเริ่มต้นใช้ Trigger.dev v3 กับ Next.js project ใช้เวลา 10-15 นาทีถ้าทำตามนี้:
Step 1 — สมัครและสร้าง Project
ไปที่ trigger.dev สมัคร Free tier (5,000 runs/เดือน) สร้าง Organization และ Project ใหม่ จะได้ API Key 2 ตัว: `TRIGGER_SECRET_KEY` สำหรับ Server และ `TRIGGER_PUBLIC_API_KEY` สำหรับ Client
Step 2 — ติดตั้ง CLI
รัน `npx trigger.dev@latest init` ใน root ของ Next.js project CLI จะสร้างโฟลเดอร์ `/trigger` พร้อม config file `trigger.config.ts` และเพิ่ม secret key ใน .env อัตโนมัติ
Step 3 — เขียน Task แรก
สร้างไฟล์ `/trigger/send-welcome-email.ts` ใช้ helper `task()` รับ `id`, `run` function รับ payload ส่งคืน result กลับ ใส่ `retry` config เพื่อ retry อัตโนมัติเมื่อ network ผิดพลาด ใช้ `logger` ของ Trigger.dev จะ log เข้า Dashboard ให้ทันที
Step 4 — Trigger จาก Server Action
ใน Next.js Server Action หรือ Route Handler เรียก `tasks.trigger("send-welcome-email", payload)` ฟังก์ชันนี้ return ภายใน 50ms (แค่ enqueue) ไม่ block HTTP response ทำให้ user ได้ feedback ทันที
Step 5 — Deploy และรัน Worker
ใช้ `npx trigger.dev@latest deploy` upload code ไป Cloud หรือ Docker Self-host Worker จะสตาร์ทโดยอัตโนมัติ ดู progress real-time ใน Dashboard
เชื่อมต่อกับ Laravel API: 2 รูปแบบที่ใช้บ่อย
SME ไทยส่วนใหญ่มี Backend เป็น Laravel แต่อยากใช้ Trigger.dev เพราะ TypeScript developer ทำงานเร็วและ ecosystem ดีกว่า มี 2 รูปแบบหลักในการรวมระบบ:
ทั้ง 2 รูปแบบแนะนำให้ตั้ง Internal Network เพื่อให้ Latency ต่ำ ถ้า Laravel อยู่บน VPS เดียวกันให้เปิด Trigger.dev self-host บน Docker Compose จะลด round-trip ได้มาก
ใช้ Trigger.dev ทำอะไรได้บ้างในธุรกิจจริง
ตัวอย่าง Use Case ที่ทีมเราติดตั้งให้ลูกค้า SME ในกรุงเทพและชลบุรี:
เปรียบเทียบ Pricing: Self-host vs Cloud
| รูปแบบ | Free | Pro | Enterprise |
|--------|------|-----|------------|
| Self-host Docker | ฟรี ตลอด | - | - |
| Cloud Hobby | 5,000 runs/เดือน | - | - |
| Cloud Pro | - | $20/เดือน + $0.0025/run | - |
| Cloud Team | - | $90/เดือน, Concurrency สูง | - |
| Cloud Enterprise | - | - | Custom + SLA + SOC 2 |
สำหรับ SME ที่ต้องการ Privacy/PDPA สูง แนะนำให้ใช้ Self-host Docker จะได้ Performance เทียบเท่า Cloud โดยไม่ต้องจ่ายค่า license แต่ต้องมีคนดูแล Postgres และ Redis เอง ส่วน Cloud Hobby เหมาะกับ Side-project หรือ MVP ที่ run ไม่เกิน 5,000 ครั้ง/เดือน
ข้อควรพิจารณาก่อนเลือก Trigger.dev
จุดที่ต้องระวังคือ Trigger.dev เป็น TypeScript-first ถ้าทีมของคุณเขียน Python หรือ Go เป็นหลักจะใช้ลำบาก ควรเลือก Hatchet, Inngest หรือ Temporal แทน นอกจากนี้ Self-host ต้องการ Postgres 14+, Redis 7+, Docker Compose พื้นฐาน ไม่เหมาะกับทีมที่ไม่มี DevOps
อีกจุดคือ Long-run task เกิน 1 ชั่วโมงให้แตก task เป็น sub-task หลายชั้นแทน เพราะ Trigger.dev ออกแบบสำหรับ task ระดับนาที-สิบนาที ไม่ใช่ batch processing ระดับชั่วโมง
สรุป + ขั้นตอนถัดไป
Trigger.dev v3 เป็นทางเลือกที่ลดเวลาตั้งค่า Background Job Queue สำหรับ TypeScript ทีมได้ 60-80% เทียบกับการประกอบ Bull + Redis + Worker เอง พร้อม Realtime UI และ State Persistence ที่ทำให้ Production มั่นคงมากขึ้น สำหรับ SME ไทยแนะนำเริ่มจาก Cloud Hobby tier ทดลองงานเล็ก-กลาง 1-2 task ก่อน ถ้าใช้แล้วชอบจึงค่อยย้ายไป Self-host เพื่อประหยัดค่าใช้จ่ายระยะยาว
หากต้องการให้ทีม ADS FIT วาง Job Queue Architecture, ออกแบบ Workflow ที่ฝัง AI หรือเชื่อม Laravel + Next.js + Trigger.dev ทั้งระบบ พร้อม Monitoring และ Alert สามารถติดต่อปรึกษาฟรีได้ที่ contact@adsfit.co.th หรืออ่านบทความเกี่ยวข้องอื่น เช่น Better Auth TypeScript, Bun Runtime, Apache Kafka Event Streaming ในบล็อก ADS FIT