# NATS JetStream คืออะไร? คู่มือ Lightweight Message Broker สำหรับ Microservices SME ไทย 2026
ในการพัฒนาระบบสมัยใหม่ที่นิยม Microservices, Event-driven architecture และ Real-time มากขึ้น Message Broker กลายเป็นโครงสร้างพื้นฐานที่ขาดไม่ได้ แต่หลาย SME ในไทยพบว่า RabbitMQ และ Kafka แม้จะเป็นที่นิยม กลับใช้ทรัพยากรเยอะ ตั้งค่ายาก และเรียนรู้ยากสำหรับทีมขนาดเล็ก
NATS เป็น Open-Source Message Broker ที่ออกแบบมาเพื่อ Cloud-native ตั้งแต่วันแรก เขียนด้วย Go มี binary ขนาดเล็กกว่า 30 MB เริ่มต้นใน 1 คำสั่ง รองรับ Pub/Sub, Request/Reply, Queue Group และเมื่อรวมกับ JetStream ก็สามารถเก็บข้อความแบบ Persistent Stream ได้เหมือน Kafka แต่ตั้งค่าง่ายกว่ามาก
NATS คืออะไร และทำไมถึงน่าใช้
NATS เริ่มพัฒนาในปี 2010 โดย Derek Collison ปัจจุบันเป็นโครงการระดับ Incubating ของ CNCF (Cloud Native Computing Foundation) ใช้งานในระบบจริงมานานกว่า 10 ปี
จุดเด่นของ NATS:
NATS Core vs JetStream แตกต่างกันอย่างไร
NATS แบ่งฟังก์ชันออกเป็น 2 เลเยอร์:
NATS Core เน้น at-most-once delivery แบบ in-memory เร็วมากแต่ไม่เก็บข้อความถ้าไม่มีผู้รับอยู่ เหมาะกับ Notification, Real-time Events ที่ไม่ต้อง Persistent
NATS JetStream เพิ่ม at-least-once และ exactly-once delivery รองรับการเก็บข้อความบน Disk หรือ Memory ทำ Replay ย้อนหลังได้ รองรับ Replication 3 copies เพื่อ HA เหมาะกับ Order Event, Payment Event, Audit Log
เปรียบเทียบ NATS JetStream กับ RabbitMQ และ Kafka
| ฟีเจอร์ | NATS JetStream | RabbitMQ | Apache Kafka |
|---------|----------------|----------|--------------|
| ภาษา | Go | Erlang | Java/Scala |
| ขนาด Binary | 30 MB | 150 MB | 500 MB+ JVM |
| RAM ขั้นต่ำ | 64 MB | 256 MB | 1 GB+ |
| Setup เริ่มต้น | 1 บรรทัด | ปานกลาง | ซับซ้อน |
| Pub/Sub | ใช่ | ใช่ผ่าน Exchange | ใช่ |
| Request/Reply | built-in | ต้องประกอบเอง | ไม่มีโดยตรง |
| Persistent Stream | ใช่ | ใช่ | ใช่ |
| Replay ข้อความ | ใช่ | ไม่ได้ | ใช่ |
| KV Store | built-in | ไม่มี | ผ่าน KafkaStreams |
| Throughput | 18M msg/sec | 50K msg/sec | 1M+ msg/sec |
| Operational Complexity | ต่ำ | ปานกลาง | สูง |
ถ้าต้องการ Message Broker ที่เริ่มต้นเร็ว ขยายง่าย และครอบคลุม use case ทั่วไปของ Microservices NATS JetStream เป็นตัวเลือกที่ลงตัวที่สุดสำหรับ SME ไทยในปี 2026
การติดตั้งและใช้งาน NATS JetStream
Step 1: รัน NATS Server ด้วย Docker
```
docker run -d --name nats -p 4222:4222 -p 8222:8222 nats:latest -js -m 8222
```
flag -js เปิด JetStream และ -m 8222 เปิด HTTP monitoring
Step 2: ติดตั้ง NATS CLI
```
curl -sf https://binaries.nats.dev/nats-io/natscli/nats@latest | sh
sudo mv nats /usr/local/bin/
```
Step 3: สร้าง Stream แรก
```
nats stream add ORDERS --subjects "orders.>" --storage file --replicas 1 --retention limits --max-age 7d
```
คำสั่งนี้สร้าง Stream ชื่อ ORDERS รับข้อความที่ขึ้นต้นด้วย orders. (เช่น orders.created, orders.paid) เก็บลง disk อายุ 7 วัน
Step 4: ทดสอบส่งและรับข้อความ
```
nats pub orders.created '{"order_id":"A001","amount":1500}'
nats consumer add ORDERS warehouse --pull --filter "orders.created" --deliver all
nats consumer next ORDERS warehouse
```
Step 5: ใช้งานใน Application
ตัวอย่าง Node.js publisher:
```
import { connect, JSONCodec } from "nats";
const nc = await connect({ servers: "nats://localhost:4222" });
const js = nc.jetstream();
const jc = JSONCodec();
await js.publish("orders.created", jc.encode({ order_id: "A001", amount: 1500 }));
await nc.drain();
```
Use Case จริงสำหรับ SME ไทย
1. E-commerce Order Pipeline ใช้ JetStream เก็บ order events เพื่อให้ทีม warehouse, billing, shipping ทำงานแบบ async ได้
2. IoT Telemetry Ingestion ส่งข้อมูลเซนเซอร์จากโรงงานเข้า NATS ก่อนกระจายไปยัง Time-series DB
3. Audit Log Streaming ทุก mutation ที่เกิดบน application ส่งไป Stream เดียวเพื่อ replay ดูประวัติได้
4. Distributed KV Store ใช้แทน Redis ในงานเล็กๆ ที่ต้องการแชร์ state ระหว่าง services
5. Real-time Notification ส่ง push notification ผ่าน NATS Core ที่ latency ต่ำกว่า 1 ms
Best Practices ในการใช้ NATS JetStream
สรุปและขั้นตอนถัดไป
NATS JetStream เป็น Message Broker ที่ตอบโจทย์ SME ไทยในปี 2026 ได้ครบถ้วน ทั้งความเร็ว ขนาดที่เบา การเรียนรู้ที่ง่าย และฟีเจอร์ที่ครอบคลุม ตั้งแต่ Pub/Sub พื้นฐานไปจนถึง Persistent Stream แบบ Kafka พร้อม KV Store แถมในตัว ลดต้นทุนในการดูแลระบบและทำให้นักพัฒนาเลื่อนไหลกับการสร้าง Microservices ได้รวดเร็วขึ้น
Key Takeaways:
สนใจให้ ADS FIT ออกแบบ Event-driven Architecture ด้วย NATS สำหรับธุรกิจคุณ? ทีมเรามีประสบการณ์ออกแบบและติดตั้ง Message Broker บน Kubernetes และ On-premise สำหรับองค์กรไทย ติดต่อเราได้ที่หน้า Contact หรืออ่านบทความ Development อื่นๆ บนบล็อก ADS FIT