@arturwojnar/hermes-postgresql
Version:
Production-Ready TypeScript Outbox Pattern for PostgreSQL
15 lines (14 loc) • 619 B
TypeScript
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 };