UNPKG

hook-engine

Version:

Production-grade webhook engine with comprehensive adapter support, security, reliability, structured logging, and CLI tools.

118 lines (117 loc) 2.87 kB
import { EventEmitter } from 'events'; import { ReliabilityConfig, HealthStatus, DeduplicationResult, ReliabilityMetrics } from '../types/reliability'; /** * Comprehensive reliability manager for production webhook processing */ export declare class ReliabilityManager extends EventEmitter { private config; private startTime; private healthCheckInterval?; private memoryMonitorInterval?; private deduplicationCleanupInterval?; private isShuttingDown; private shutdownPromise?; private deduplicationStore; private requestMetrics; constructor(config: ReliabilityConfig); /** * Initialize all reliability features */ private initialize; /** * Start health check monitoring */ private startHealthChecks; /** * Perform comprehensive health check */ private performHealthCheck; /** * Check individual endpoint */ private checkEndpoint; /** * Check dependency status */ private checkDependency; /** * Gather health metrics */ private gatherHealthMetrics; /** * Get memory usage information */ private getMemoryUsage; /** * Get CPU usage (simplified implementation) */ private getCPUUsage; /** * Calculate requests per second */ private calculateRequestsPerSecond; /** * Start memory monitoring */ private startMemoryMonitoring; /** * Check memory usage and trigger actions if needed */ private checkMemoryUsage; /** * Trigger memory actions based on threshold */ private triggerMemoryActions; /** * Setup graceful shutdown handling */ private setupGracefulShutdown; /** * Initiate graceful shutdown process */ private initiateGracefulShutdown; /** * Perform graceful shutdown */ private performGracefulShutdown; /** * Check for duplicate requests */ checkDeduplication(req: any): Promise<DeduplicationResult>; /** * Start deduplication cleanup */ private startDeduplicationCleanup; /** * Cleanup expired deduplication entries */ private cleanupDeduplicationStore; /** * Record request metrics */ recordRequest(responseTime: number, isError?: boolean): void; /** * Get current health status */ getCurrentHealthStatus(): Promise<HealthStatus>; /** * Get reliability metrics */ getMetrics(): Promise<ReliabilityMetrics>; /** * Check if system is ready to accept requests */ isReady(): Promise<boolean>; /** * Check if system is alive (basic liveness check) */ isAlive(): boolean; /** * Cleanup resources */ private cleanup; /** * Destroy the reliability manager */ destroy(): void; }