Documentation

n8n-nodes-boltx-nats

Community node n8n cho NATS publish + trigger. Type khớp 1-1 với executor native bên goworker:

  • n8n-nodes-boltx-nats.nats → publish 1 message (worker: node_nats.go)
  • n8n-nodes-boltx-nats.natsTrigger → subscribe subject (worker: node_nats_trigger.go)

Workflow viết 1 lần chạy đúng trên cả 2 runtime:

  • n8n native (UI test / dev) → execute bằng nats.js (npm nats v2).
  • goworker production → execute bằng github.com/nats-io/nats.go Go native, kết nối pooled qua nats_ops.go.

Cài lên n8n self-host

Option A — Community Nodes UI (npm)

  1. cd worker/node-raw/n8n-nodes-boltx-nats && npm install --ignore-scripts && npm run build && npm publish --access public.
  2. Trên n8n UI → Settings → Community Nodes → Install → paste n8n-nodes-boltx-nats → Install.
  3. Restart n8n nếu cần. Node palette hiện:
    • "NATS (BoltX)" (publish, category Communication)
    • "NATS Trigger (BoltX)" (subscribe trigger)

Option B — Mount thủ công

npm install --prefix ~/.n8n/nodes n8n-nodes-boltx-nats

Restart n8n.

Credential natsApi

Compat với Synadia (url) + LuxChanLu (servers) — worker đọc cả 2 field:

Field Mục đích
url NATS server URL (nats://user:pass@host:4222). Ưu tiên hơn servers.
username / user Auth user (worker đọc cả 2).
password / pass Auth pass.
token NATS auth token. Ưu tiên hơn user/pass khi cả 2 cùng có.

⚠️ goworker env override: nếu GO_NATS env set trên worker, worker bỏ qua credential trên node → dùng URL của env. n8n native vẫn dùng credential bình thường.

Param khớp worker

Publish nats (Nats.node.ts)

Param n8n Field worker
subject subject (bắt buộc)
data data (default ={{ $json }} → worker fast-path bypass expression eval)

Output: pass-through input items (worker behaviour).

Trigger natsTrigger (NatsTrigger.node.ts)

Param n8n Mục đích
subject Subject subscribe (hỗ trợ wildcard * và >)
queueGroup Optional, queue group cho load-balance
parseJson Bật → JSON.parse payload, lỗi → giữ raw string

Emit shape: { subject, reply, sid, data }.

⚠️ Trên goworker, NatsTriggerNode.Execute chỉ passthrough — logic subscribe thực hiện ngoài (internal/transport/...) đọc descriptor để subscribe đúng subject/queue.

Async publish flag

Khi worker chạy với GO_NATS_ASYNC=1, publish thành fire-and-forget (không chờ ACK). Param descriptor n8n không expose flag này — chỉnh ở env worker production.

Build local

npm install --ignore-scripts    # bỏ qua native compile của transitive deps
npm run build                   # tsc + gulp copy icons → dist/
npm run dev                     # tsc --watch

Discussion