UNPKG

@gftdcojp/ksqldb-orm

Version:

ksqldb-orm - Server-Side TypeScript ORM for ksqlDB with enterprise security extensions

192 lines 6.65 kB
/** * 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