UNPKG

@pulzar/core

Version:

Next-generation Node.js framework for ultra-fast web applications with zero-reflection DI, GraphQL, WebSockets, events, and edge runtime support

138 lines 3.39 kB
import { EventAdapter, EventEnvelope, EventHandler, SubscribeOptions, SubscriptionHandle, AdapterStats, AdapterCapabilities, PublishResult, HealthStatus } from "../types"; interface KafkaConfig { clientId?: string; brokers: string[]; ssl?: boolean; sasl?: { mechanism: "plain" | "scram-sha-256" | "scram-sha-512" | "aws"; username?: string; password?: string; }; connectionTimeout?: number; requestTimeout?: number; retry?: { retries?: number; initialRetryTime?: number; maxRetryTime?: number; }; producer?: { maxInFlightRequests?: number; idempotent?: boolean; transactionTimeout?: number; allowAutoTopicCreation?: boolean; }; consumer?: { groupId: string; sessionTimeout?: number; rebalanceTimeout?: number; heartbeatInterval?: number; maxBytesPerPartition?: number; maxBytes?: number; allowAutoTopicCreation?: boolean; maxWaitTimeInMs?: number; fromBeginning?: boolean; }; admin?: { timeout?: number; }; } export declare class KafkaEventAdapter implements EventAdapter { readonly name = "kafka"; readonly version = "1.0.0"; readonly capabilities: AdapterCapabilities; private kafka; private producer; private consumer; private admin; private config; private connected; private subscriptions; private stats; constructor(config: KafkaConfig); /** * Connect to Kafka cluster */ connect(): Promise<void>; /** * Disconnect from Kafka */ disconnect(): Promise<void>; /** * Check if connected */ isConnected(): boolean; /** * Publish event to Kafka topic */ publish(subject: string, event: EventEnvelope): Promise<PublishResult>; /** * Subscribe to Kafka topic */ subscribe(subject: string, handler: EventHandler, options?: SubscribeOptions): Promise<SubscriptionHandle>; /** * Unsubscribe from Kafka topic */ unsubscribe(handle: SubscriptionHandle): Promise<void>; /** * Acknowledge message (commit offset) */ ack(event: EventEnvelope): Promise<void>; /** * Negative acknowledge (seek back to retry) */ nack(event: EventEnvelope, requeue?: boolean): Promise<void>; /** * Flush producer */ flush(): Promise<void>; /** * Get adapter statistics */ getStats(): Promise<AdapterStats>; /** * Health check */ healthCheck(): Promise<HealthStatus>; /** * Handle incoming Kafka message */ private handleMessage; /** * Ensure topic exists */ private ensureTopic; /** * Create Kafka headers */ private createHeaders; /** * Serialize event for Kafka */ private serialize; /** * Deserialize Kafka message */ private deserialize; /** * Setup event handlers */ private setupEventHandlers; /** * Try to import KafkaJS package */ private importKafka; /** * Update statistics */ private updateStats; /** * Reset statistics */ private resetStats; /** * Generate unique ID */ private generateId; } export default KafkaEventAdapter; //# sourceMappingURL=kafka.d.ts.map