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).
27 lines • 1.35 kB
TypeScript
import { OutboxOrInbox } from '../common/listener-config';
export interface DatabaseSetupConfig {
outboxOrInbox: OutboxOrInbox;
database: string;
schema: string;
table: string;
listenerRole: string;
handlerRole?: string;
}
export interface DatabaseReplicationSetupConfig extends DatabaseSetupConfig {
publication: string;
replicationSlot: string;
}
export interface DatabasePollingSetupConfig extends DatabaseSetupConfig {
nextMessagesSchema?: string;
nextMessagesName: string;
}
export declare const DatabaseSetup: {
dropAndCreateTable: ({ outboxOrInbox, schema, table, }: DatabaseSetupConfig) => string;
dropAndCreateHandlerAndListenerRoles: ({ database, listenerRole, handlerRole, }: DatabaseSetupConfig) => string;
grantPermissions: ({ handlerRole, listenerRole, schema, table, }: DatabaseSetupConfig) => string;
setupReplicationCore: ({ listenerRole, publication, schema, table, }: DatabaseReplicationSetupConfig) => string;
setupReplicationSlot: ({ replicationSlot, }: DatabaseReplicationSetupConfig) => string;
createPollingFunction: ({ schema, table, nextMessagesSchema, nextMessagesName, }: DatabasePollingSetupConfig) => string;
setupPollingIndexes: ({ schema, table, outboxOrInbox, }: DatabasePollingSetupConfig) => string;
};
//# sourceMappingURL=database-setup.d.ts.map