UNPKG

@arturwojnar/hermes-postgresql

Version:

Production-Ready TypeScript Outbox Pattern for PostgreSQL

15 lines (14 loc) 619 B
import { Duration } from '@arturwojnar/hermes'; import { MessageToPublish } from '../publishingQueue.js'; type StateMessage<InsertResult> = MessageToPublish<InsertResult> & { delivered: boolean; failed: boolean; }; type ResendingStrategyParamse<InsertResult> = { getMessages: () => StateMessage<InsertResult>[]; publishMessage: (message: MessageToPublish<InsertResult>) => Promise<unknown>; isPublishing: () => boolean; interval: Duration; }; type ResendingStrategy<InsertResult> = (params: ResendingStrategyParamse<InsertResult>) => () => void; export type { ResendingStrategy, StateMessage };