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
TypeScript
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;
}