Kaizen
Browse modulesChatchat/serverFunctions

Function: createChatOutbox()

function createChatOutbox(options: {
  publisher: ChatPublisher;
}): {
  claimBatch: (input: {
     leaseMs?: number;
     limit?: number;
  }) => Promise<ClaimedChatEvent[]>;
  complete: (input: {
     eventId: string;
     leaseToken: string;
  }) => Promise<boolean>;
  retry: (input: {
     delayMs?: number;
     error: "ENRICHMENT_FAILED" | "PUBLICATION_FAILED" | "PUBLICATION_TIMEOUT";
     eventId: string;
     leaseToken: string;
  }) => Promise<boolean>;
  drain: Promise<{
     claimed: number;
     leaseLost: number;
     maxEventAgeMs: number;
     published: number;
     retried: number;
  }>;
};

Defined in: server/chat/outbox.ts:69

Parameters

ParameterType
options{ publisher: ChatPublisher; }
options.publisherChatPublisher

Returns

{
  claimBatch: (input: {
     leaseMs?: number;
     limit?: number;
  }) => Promise<ClaimedChatEvent[]>;
  complete: (input: {
     eventId: string;
     leaseToken: string;
  }) => Promise<boolean>;
  retry: (input: {
     delayMs?: number;
     error: "ENRICHMENT_FAILED" | "PUBLICATION_FAILED" | "PUBLICATION_TIMEOUT";
     eventId: string;
     leaseToken: string;
  }) => Promise<boolean>;
  drain: Promise<{
     claimed: number;
     leaseLost: number;
     maxEventAgeMs: number;
     published: number;
     retried: number;
  }>;
}

claimBatch

claimBatch: (input: {
  leaseMs?: number;
  limit?: number;
}) => Promise<ClaimedChatEvent[]>;

Parameters

ParameterType
input{ leaseMs?: number; limit?: number; }
input.leaseMs?number
input.limit?number

Returns

Promise<ClaimedChatEvent[]>

complete

complete: (input: {
  eventId: string;
  leaseToken: string;
}) => Promise<boolean>;

Parameters

ParameterType
input{ eventId: string; leaseToken: string; }
input.eventIdstring
input.leaseTokenstring

Returns

Promise<boolean>

retry

retry: (input: {
  delayMs?: number;
  error: "ENRICHMENT_FAILED" | "PUBLICATION_FAILED" | "PUBLICATION_TIMEOUT";
  eventId: string;
  leaseToken: string;
}) => Promise<boolean>;

Parameters

ParameterType
input{ delayMs?: number; error: "ENRICHMENT_FAILED" | "PUBLICATION_FAILED" | "PUBLICATION_TIMEOUT"; eventId: string; leaseToken: string; }
input.delayMs?number
input.error"ENRICHMENT_FAILED" | "PUBLICATION_FAILED" | "PUBLICATION_TIMEOUT"
input.eventIdstring
input.leaseTokenstring

Returns

Promise<boolean>

drain()

drain(input?: {
  leaseMs?: number;
  limit?: number;
  publishTimeoutMs?: number;
}): Promise<{
  claimed: number;
  leaseLost: number;
  maxEventAgeMs: number;
  published: number;
  retried: number;
}>;

Parameters

ParameterType
input{ leaseMs?: number; limit?: number; publishTimeoutMs?: number; }
input.leaseMs?number
input.limit?number
input.publishTimeoutMs?number

Returns

Promise<{ claimed: number; leaseLost: number; maxEventAgeMs: number; published: number; retried: number; }>

On this page