Skip to main content

Message Producer

The IMessageProducer port defines how domain events are published from DugongJS as messages to external systems through a message broker.

IMessageProducer

The responsibility of the IMessageProducer is to publish one or more outbound messages based on metadata for a specific aggregate. Methods on the interface will receive the current transaction context provided by ITransactionManager which can be used to implement the outbox pattern, where a dedicated database table functions as an outbox and a transaction log miner acts as the message producer. It should be implemented like so:

import type { IMessageProducer } from "@dugongjs/core";

export class MessageProducer implements IMessageProducer<TMessage> {
// Implementation here...
}

Here, TMessage should be a type corresponding to the message format of the broker.