Back to Delivery 3 Reliable Quality Utilities
delivery-03-reliable-quality-utilities/src/models.ts
export interface Clock {
now(): number;
sleep(milliseconds: number): Promise<void>;
}
export type FailureKind =
| "invalid-input"
| "dependency-failure"
| "timeout"
| "unexpected-result";
export interface DiagnosticContext {
readonly operation: string;
readonly attempt?: number;
readonly elapsedMs?: number;
readonly observedState?: string;
/** True only when a retryable operation used every allowed total attempt. */
readonly retryExhausted?: boolean;
}
export interface PollingResult<T> {
value: T;
attempts: number;
elapsedMs: number;
}
export interface RetryResult<T> {
value: T;
attempts: number;
}
export interface QualityCheckObservation {
endpoint: string;
state: "pending" | "complete" | "failed";
responseTimeMs: number;
}
export interface QualityCheckSummary {
executionCount: number;
completedCount: number;
failedCount: number;
slowEndpointCount: number;
}