콘텐츠로 이동

NotificationRelayStore — @gj-kit/nest-notifications

@gj-kit/nest-notifications에서 공개하는 interface입니다. package version 0.1.1의 release declaration을 그대로 표시합니다.

import { NotificationRelayStore } from '@gj-kit/nest-notifications';
/**
* Ingress outbox persistence. The library owns no schema; a host maps these four
* operations onto its own table. The obligations R1-R13 documented in the design
* are part of the contract, and `notificationStoreContractCases()` from the
* `./testing` subpath checks them.
*/
interface NotificationRelayStore {
/** Atomically claim up to `limit` due rows. Only rows this call actually won are returned (R1). */
claimDue(request: RelayClaimRequest): Promise<readonly ClaimedNotificationCommand[]>;
/**
* Run `work` in one transaction that holds the outbox row lock (R7). Resolves
* to `null` without running `work` when this worker no longer owns the claim.
*/
relayInTransaction<T>(request: RelayTransactionRequest, work: (tx: NotificationRelayTransaction) => Promise<T>): Promise<T | null>;
/** `false` means the claim was lost; the stored outcome is unchanged (R8). */
completeClaim(request: RelayCompleteRequest): Promise<boolean>;
/** Release a failed claim so the next pass can retry it. Never throws for a lost claim. */
releaseClaim(request: RelayReleaseRequest): Promise<void>;
}

이 선언은 매개변수, optionality, 제네릭, 반환값, 공개 union/type 계약의 정본입니다. 호출 전 필요한 환경·권한·오류 경계는 패키지 Golden path와 이 subpath의 import 조건을 함께 확인하세요.

  • 패키지: @gj-kit/nest-notifications
  • 버전: 0.1.1
  • 공개 entry: .
  • 소스: GitHub

Ingress outbox persistence. The library owns no schema; a host maps these four operations onto its own table. The obligations R1-R13 documented in the design are part of the contract, and notificationStoreContractCases() from the ./testing subpath checks them.