pg-transactional-outbox
Version:
A PostgreSQL based transactional outbox and inbox pattern implementation to support exactly once message processing (with at least once message delivery).
15 lines • 1 kB
TypeScript
import { DatabaseClient } from '../common/database';
import { ListenerConfig } from '../common/listener-config';
import { TransactionalLogger } from '../common/logger';
import { TransactionalMessage } from './transactional-message';
export interface MessageStorage {
(message: TransactionalMessage, client: DatabaseClient): Promise<void>;
}
/**
* Initialize the message storage to store outbox or inbox messages in the corresponding table.
* @param config The configuration object that defines the values on how to connect to the database and general settings.
* @param logger A logger instance for logging trace up to error logs
* @returns Initializes the function to store the outbox or inbox message data to the database and provides the shutdown action.
*/
export declare const initializeMessageStorage: ({ settings, outboxOrInbox, }: Pick<ListenerConfig, "settings" | "outboxOrInbox">, logger: TransactionalLogger) => MessageStorage;
//# sourceMappingURL=initialize-message-storage.d.ts.map