@gftdcojp/ksqldb-orm
Version:
ksqldb-orm - Server-Side TypeScript ORM for ksqlDB with enterprise security extensions
192 lines • 6.65 kB
TypeScript
/**
* Resilient ksqlDB Client - パーティション再バランシング対応の高可用性クライアント
*
* @description このモジュールは、既存のksqlDBクライアントに
* リトライ機構、サーキットブレーカー、フォールバック戦略を統合した
* リジリエントなクライアントを提供します。
*/
import { KsqlDbConfig, ResilienceConfig, EnhancedPullQueryOptions, ResilientQueryResult, ResilienceMetrics, CircuitBreakerState } from './types';
import { PullQueryOptions } from './ksqldb-client';
/**
* リジリエント ksqlDB クライアント設定
*/
export interface ResilientKsqlDbConfig extends KsqlDbConfig {
resilience?: ResilienceConfig;
}
/**
* リジリエント ksqlDB クライアント
*
* 既存のksqlDBクライアントAPIと完全に互換性を保ちながら、
* パーティション再バランシングなどの障害に対する耐性を提供します。
*/
export declare class ResilientKsqlDbClient {
private config;
private executor;
private initialized;
constructor(config: ResilientKsqlDbConfig);
/**
* クライアントを初期化
*
* 既存のinitializeKsqlDbClientと同じインターフェース
*/
initialize(): Promise<void>;
/**
* リジリエント Pull Query 実行
*
* 既存のexecutePullQueryと互換性を保ちながら、
* リトライ・サーキットブレーカー・フォールバック機能を提供
*
* @param sql SQL文
* @param options 実行オプション(拡張版)
* @returns リジリエント実行結果
*/
executePullQuery(sql: string, options?: EnhancedPullQueryOptions): Promise<ResilientQueryResult>;
/**
* 下位互換性のためのPull Query実行
*
* 既存のAPIと完全に互換性を保持(リジリエンス機能は内部的に適用)
*
* @param sql SQL文
* @param options 従来のPull Queryオプション
* @returns 従来の形式の結果
*/
executePullQueryCompat(sql: string, options?: PullQueryOptions): Promise<any>;
/**
* リジリエント DDL/DML クエリ実行
*
* @param sql SQL文
* @param options 実行オプション
* @returns リジリエント実行結果
*/
executeQuery(sql: string, options?: {
retries?: number;
backoffStrategy?: 'exponential' | 'linear' | 'fixed';
timeout?: number;
}): Promise<ResilientQueryResult>;
/**
* 下位互換性のためのクエリ実行
*
* @param sql SQL文
* @returns 従来の形式の結果
*/
executeQueryCompat(sql: string): Promise<any>;
/**
* Push Query実行(ストリーミング)
*
* Push Queryはストリーミング性質上、リトライよりも
* 接続の復旧とエラーハンドリングに重点を置く
*
* @param sql SQL文
* @param onData データ受信コールバック
* @param onError エラーコールバック(拡張版)
* @param onComplete 完了コールバック
* @returns terminate関数
*/
executePushQuery(sql: string, onData: (data: any) => void, onError?: (error: Error, resilience?: {
errorType: string;
retryCount: number;
canRetry: boolean;
}) => void, onComplete?: () => void): Promise<{
terminate: () => void;
}>;
/**
* ヘルスチェック実行
*
* クライアントの状態とサーキットブレーカーの状態を確認
*/
healthCheck(): Promise<{
status: 'healthy' | 'degraded' | 'unhealthy';
details: {
clientInitialized: boolean;
circuitBreakerState: CircuitBreakerState;
metrics: ResilienceMetrics;
lastError?: string;
};
}>;
/**
* メトリクス情報を取得
*/
getMetrics(): ResilienceMetrics;
/**
* サーキットブレーカーの状態を取得
*/
getCircuitBreakerState(): CircuitBreakerState;
/**
* サーキットブレーカーをリセット
*/
resetCircuitBreaker(): void;
/**
* メトリクスをリセット
*/
resetMetrics(): void;
/**
* クライアント設定を取得
*/
getConfig(): ResilientKsqlDbConfig;
/**
* リソースクリーンアップ
*/
dispose(): void;
/**
* 初期化チェック
*/
private ensureInitialized;
}
/**
* リジリエントksqlDBクライアントを初期化(グローバル)
*
* 既存のinitializeKsqlDbClientと同じインターフェースで、
* リジリエンス機能が追加されたクライアントを初期化
*
* @param config リジリエント設定を含むksqlDB設定
*/
export declare function initializeResilientKsqlDbClient(config: ResilientKsqlDbConfig): Promise<void>;
/**
* グローバルなリジリエントPull Query実行
*
* 既存のexecutePullQueryと同じインターフェース(拡張オプション対応)
*
* @param sql SQL文
* @param options 拡張されたPull Queryオプション
* @returns 実行結果
*/
export declare function executePullQueryResilient(sql: string, options?: EnhancedPullQueryOptions): Promise<any>;
/**
* グローバルなリジリエントQuery実行
*
* @param sql SQL文
* @returns 実行結果
*/
export declare function executeQueryResilient(sql: string): Promise<any>;
/**
* グローバルなリジリエントPush Query実行
*
* @param sql SQL文
* @param onData データ受信コールバック
* @param onError エラーコールバック
* @param onComplete 完了コールバック
* @returns terminate関数
*/
export declare function executePushQueryResilient(sql: string, onData: (data: any) => void, onError?: (error: Error) => void, onComplete?: () => void): Promise<{
terminate: () => void;
}>;
/**
* グローバルクライアントのヘルスチェック
*/
export declare function getKsqlDbHealth(): Promise<{
status: 'healthy' | 'degraded' | 'unhealthy';
details: any;
}>;
/**
* グローバルクライアントのメトリクス取得
*/
export declare function getKsqlDbMetrics(): ResilienceMetrics | null;
/**
* グローバルクライアントのサーキットブレーカー状態取得
*/
export declare function getKsqlDbCircuitBreakerState(): CircuitBreakerState | null;
/**
* グローバルクライアントのリソースクリーンアップ
*/
export declare function disposeResilientKsqlDbClient(): void;
//# sourceMappingURL=resilient-client.d.ts.map