Connectum API Reference / @connectum/events-amqp / AmqpAdapter
Function: AmqpAdapter() ​
AmqpAdapter(
options):EventAdapter
Defined in: packages/events-amqp/src/AmqpAdapter.ts:1386
Create an AMQP/RabbitMQ adapter for @connectum/events.
Parameters ​
options ​
AMQP adapter configuration
Returns ​
EventAdapter
EventAdapter instance
Examples ​
typescript
import { AmqpAdapter } from "@connectum/events-amqp";
import { createEventBus } from "@connectum/events";
const bus = createEventBus({
adapter: AmqpAdapter({ url: "amqp://guest:guest@localhost:5672" }),
routes: [myRoutes],
});
await bus.start();External AMQP contract (AsyncAPI-style)
typescript
import { AmqpAdapter } from "@connectum/events-amqp";
const adapter = AmqpAdapter({
url: "amqp://broker:5672",
exchange: "partner.direct",
exchangeType: "direct",
serialization: { contentType: "application/json" },
topology: {
exchanges: [
{ name: "partner.direct", type: "direct", durable: true },
{ name: "partner.dlx", type: "direct", durable: true },
],
queues: [{
name: "partner.inbound.v1",
durable: true,
arguments: {
"x-dead-letter-exchange": "partner.dlx",
"x-dead-letter-routing-key": "inbound.dead",
},
}, {
name: "partner.inbound.dead",
durable: true,
}],
bindings: [
{ queue: "partner.inbound.v1", source: "partner.direct", routingKey: "inbound" },
{ queue: "partner.inbound.dead", source: "partner.dlx", routingKey: "inbound.dead" },
],
},
// Used when an EventBus subscription has the `partner` group.
queueOverrides: { partner: { queue: "partner.inbound.v1" } },
// externalContract: emit only contract-specified properties (no envelope).
publisherOptions: { persistent: true, mandatory: true, externalContract: true },
});
await adapter.connect();
// Add a subscription with group `partner` before receiving messages.
await adapter.disconnect();