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

16 lines (14 loc) 487 B
import { Mutex } from 'async-mutex'; import { ReplicationConcurrencyController } from './concurrency-controller'; /** * Uses a single mutex to execute a single message at a time in the WAL sort order * @returns The controller to acquire and release the mutex */ export const createReplicationMutexConcurrencyController = (): ReplicationConcurrencyController => { const m = new Mutex(); return { acquire: () => m.acquire(), cancel: () => m.cancel(), }; };