Examples

Examples

Start with the runnable servers—then steal these short patterns for workers or one-off scripts where you do not want framework middleware.

Runnable repos

Both repos share the same routes so you can compare Express middleware vs Nest interceptor + exception filter:

Manual snippets

captureEvent · payment-ish
await replayStack.captureEvent({
  eventType: "api",
  method: "POST",
  endpoint: "/api/payments",
  status: "failed",
  statusCode: 402,
  requestPayload: { orderId: "ord_123", amount: 99.99 },
  responsePayload: { error: "Card declined" },
});
captureEvent · queue / worker
await replayStack.captureEvent({
  eventType: "queue",
  endpoint: "send-welcome-email-job",
  status: "failed",
  errorMessage: "SMTP timeout",
  requestPayload: { jobId: "job_456", recipient: "user@example.com" },
});

Express error middleware

Register captured routes first—error middleware listens for thrown failures after routers.

Outline
app.use(replayStackExpressErrorMiddleware(replayStack));

app.post("/api/orders", async (req, res) => {
  replayStack.addBreadcrumb("Order handler started");
  res.json({ ok: true });
});