Skip to content
TraceStax Docs

Node.js

The TraceStax Node.js SDK supports BullMQ, Bull (legacy), AWS SQS, and Temporal. One package — import only what you use.

  • Node.js 18+
  • One of: BullMQ 5.x, Bull 3/4.x, @aws-sdk/client-sqs, @temporalio/worker
Terminal window
npm install @tracestax/node

import { Queue, Worker } from "bullmq";
import { configure } from "@tracestax/node";
const queue = new Queue("orders", { connection });
const worker = new Worker("orders", async (job) => {
// your job handler
}, { connection });
configure(queue, { apiKey: "ts_live_xxxxxxxxxxxx" }, worker);

configure() subscribes to BullMQ queue and worker events — no changes to your job handler needed.

Multiple queues:

import { TraceStaxMonitor } from "@tracestax/node";
const monitor = new TraceStaxMonitor({ apiKey: "ts_live_xxxxxxxxxxxx" });
monitor.monitorQueue(ordersQueue);
monitor.monitorWorker(ordersQueue, ordersWorker);
monitor.monitorQueue(emailQueue);
monitor.monitorWorker(emailQueue, emailWorker);

All adapters accept the same core options:

OptionEnv varDefaultDescription
apiKeyTRACESTAX_API_KEYRequired
endpointTRACESTAX_INGEST_URLhttps://ingest.tracestax.comCustom ingest endpoint
enabledTRACESTAX_ENABLEDtrueSet to false to disable
dryRunTRACESTAX_DRY_RUNfalseLog events instead of sending
flushInterval5000ms between background flushes
maxBatchSize100Max events per HTTP request

// jest.setup.ts / vitest.setup.ts
process.env.TRACESTAX_ENABLED = "false";

Or pass enabled: false when constructing any monitor/consumer class.


Events not appearing

  • Confirm TRACESTAX_API_KEY is set in your worker process environment
  • Check your Node process can reach ingest.tracestax.com:443
  • The SDK logs a [tracestax] warn line if ingest calls fail — check your worker output

TypeScript: types not resolving

Ensure moduleResolution is set to bundler or node16 in your tsconfig.json. The package ships ESM with .js extensions on all imports.