Skip to content

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 ​

AmqpAdapterOptions

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();