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).
109 lines (108 loc) • 4.25 kB
text/typescript
export { DatabaseClient } from './common/database';
export {
ErrorCode,
ExtendedError,
MessageError,
TransactionalOutboxInboxError,
ensureExtendedError,
} from './common/error';
export {
ListenerConfig,
ListenerSettings,
OutboxOrInbox,
fallbackEnvPrefix,
getInboxListenerEnvTemplate,
getInboxListenerSettings,
getOutboxListenerEnvTemplate,
getOutboxListenerSettings,
inboxEnvPrefix,
outboxEnvPrefix,
} from './common/listener-config';
export {
InMemoryLogEntry,
TransactionalLogger,
getDefaultLogger,
getDisabledLogger,
getInMemoryLogger,
} from './common/logger';
export { IsolationLevel, executeTransaction } from './common/utils';
export { GeneralMessageHandler } from './handler/general-message-handler';
export { HandlerStrategies } from './handler/handler-strategies';
export { TransactionalMessageHandler } from './handler/transactional-message-handler';
export {
MessageStorage,
initializeMessageStorage,
} from './message/initialize-message-storage';
export {
DeleteOld,
runMessageCleanupOnce,
runScheduledMessageCleanup,
} from './message/message-cleanup';
export {
StoredTransactionalMessage,
TransactionalMessage,
} from './message/transactional-message';
export {
PollingListenerConfig,
PollingListenerSettings,
applyDefaultPollingListenerConfigValues,
getInboxPollingListenerEnvTemplate,
getInboxPollingListenerSettings,
getOutboxPollingListenerEnvTemplate,
getOutboxPollingListenerSettings,
} from './polling/config';
export { initializePollingMessageListener } from './polling/polling-message-listener';
export { PollingMessageStrategies } from './polling/polling-strategies';
export { ReplicationConcurrencyController } from './replication/concurrency-controller/concurrency-controller';
export { createReplicationFullConcurrencyController } from './replication/concurrency-controller/create-full-concurrency-controller';
export {
ReplicationMultiConcurrencyType,
createReplicationMultiConcurrencyController,
} from './replication/concurrency-controller/create-multi-concurrency-controller';
export { createReplicationMutexConcurrencyController } from './replication/concurrency-controller/create-mutex-concurrency-controller';
export { createReplicationSegmentMutexConcurrencyController } from './replication/concurrency-controller/create-segment-mutex-concurrency-controller';
export { createReplicationSemaphoreConcurrencyController } from './replication/concurrency-controller/create-semaphore-concurrency-controller';
export {
ReplicationListenerConfig,
ReplicationListenerSettings,
applyDefaultReplicationListenerConfigValues,
getInboxReplicationListenerEnvTemplate,
getInboxReplicationListenerSettings,
getOutboxReplicationListenerEnvTemplate,
getOutboxReplicationListenerSettings,
} from './replication/config';
export { initializeReplicationMessageListener } from './replication/replication-message-listener';
export { ReplicationMessageStrategies } from './replication/replication-strategies';
export { defaultReplicationConcurrencyStrategy } from './replication/strategies/concurrency-strategy';
export {
ReplicationListenerRestartStrategy,
defaultReplicationListenerAndSlotRestartStrategy,
defaultReplicationListenerRestartStrategy,
} from './replication/strategies/listener-restart-strategy';
export {
DatabasePollingSetupConfig,
DatabaseReplicationSetupConfig,
DatabaseSetup,
DatabaseSetupConfig,
} from './setup/database-setup';
export { DatabaseSetupExporter } from './setup/database-setup-exporter';
export {
MessageProcessingDbClientStrategy,
defaultMessageProcessingDbClientStrategy,
} from './strategies/message-processing-db-client-strategy';
export {
MessageProcessingTimeoutStrategy,
defaultMessageProcessingTimeoutStrategy,
} from './strategies/message-processing-timeout-strategy';
export {
MessageProcessingTransactionLevelStrategy,
defaultMessageProcessingTransactionLevelStrategy,
} from './strategies/message-processing-transaction-level-strategy';
export {
MessageRetryStrategy,
defaultMessageRetryStrategy,
} from './strategies/message-retry-strategy';
export {
PoisonousMessageRetryStrategy,
defaultPoisonousMessageRetryStrategy,
} from './strategies/poisonous-message-retry-strategy';