UNPKG

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).

39 lines 1.96 kB
import { MessageNotFoundRetryStrategy } from '../strategies/message-not-found-retry-strategy'; import { MessageProcessingDbClientStrategy } from '../strategies/message-processing-db-client-strategy'; import { MessageProcessingTimeoutStrategy } from '../strategies/message-processing-timeout-strategy'; import { MessageProcessingTransactionLevelStrategy } from '../strategies/message-processing-transaction-level-strategy'; import { MessageRetryStrategy } from '../strategies/message-retry-strategy'; import { PoisonousMessageRetryStrategy } from '../strategies/poisonous-message-retry-strategy'; export interface HandlerStrategies { /** * Defines the message processing timeout strategy. By default, it uses the * configured messageProcessingTimeoutInMs. */ messageProcessingTimeoutStrategy: MessageProcessingTimeoutStrategy; /** * Defines the PostgreSQL transaction level to use for handling a message. */ messageProcessingTransactionLevelStrategy: MessageProcessingTransactionLevelStrategy; /** * Decides from what pool to take a database client. This can be helpful if some * message handlers have to run in higher trust roles than others. */ messageProcessingDbClientStrategy: MessageProcessingDbClientStrategy; /** * Decides if a message should be retried or not based on the current amount * of attempts. */ messageRetryStrategy: MessageRetryStrategy; /** * Decide based on the message, the poisonous attempts counter (which is * already increased by one), and the processing attempts if the message * should be retried again or not. */ poisonousMessageRetryStrategy: PoisonousMessageRetryStrategy; /** * Decides if the message loading and locking should be retried when the * message was not found (yet). */ messageNotFoundRetryStrategy: MessageNotFoundRetryStrategy; } //# sourceMappingURL=handler-strategies.d.ts.map