@theconduit/express
v0.1.1
Published
Express helpers for Conduit: extract incoming trace and correlation headers from HTTP requests so dispatched operation envelopes participate in your existing distributed tracing setup.
Maintainers
Readme
@theconduit/express
Express middleware helpers for injecting Conduit bus and extracting trace IDs from HTTP headers.
Install
pnpm add @theconduit/expressHighlights
createConduitMiddleware(bus)injectsrequest.conduit.bus.- Automatic
traceparentparsing torequest.conduit.trace_id. extractTraceIdutility for standalone header parsing.
Quick start
import express from "express";
import { ConduitBuilder, EnvelopeBuilder, type ConduitBus } from "@theconduit/core";
import { createConduitMiddleware } from "@theconduit/express";
import { InMemoryProvider, InMemoryDLQManager } from "@theconduit/provider-inmemory";
const app = express();
const bus: ConduitBus = new ConduitBuilder()
.registerProvider(new InMemoryProvider())
.withDlqManager(new InMemoryDLQManager())
.build();
app.use(createConduitMiddleware(bus));
app.post("/orders", async (req, res) => {
const traceId = req.conduit?.trace_id;
if (req.conduit) {
await req.conduit.bus.dispatch(
EnvelopeBuilder.command("order.create", { order_id: "o-1" })
.withSourceService("http-api")
.withTraceId(traceId ?? "fallback-trace-id")
.build()
);
}
res.json({ accepted: true, trace_id: traceId });
});Exports
createConduitMiddlewareextractTraceId
Related docs
docs/guides/getting-started.mddocs/guides/transport-hardening.md
