Db Replication

Classes

Classes

ReplicationMetricsStorage

Constructor

constructor(config?: Partial<StorageConfig> | undefined)

Parameters:

ParameterTypeRequiredDescription
configPartial<StorageConfig> | undefinedNo

Methods

storeSnapshot

Store a metric snapshot

storeSnapshot(snapshot: MetricSnapshot): void

Parameters:

ParameterTypeRequiredDescription
snapshotMetricSnapshotYes

storeEvent

Store replication event

storeEvent(event: ReplicationEvent): void

Parameters:

ParameterTypeRequiredDescription
eventReplicationEventYes

batchStoreSnapshots

Batch store multiple snapshots

batchStoreSnapshots(snapshots: MetricSnapshot[]): void

Parameters:

ParameterTypeRequiredDescription
snapshotsMetricSnapshot[]Yes

getCurrentMetrics

Get current metrics for all collections

getCurrentMetrics(): ReplicationMetrics[]

Returns:

ReplicationMetrics[] -

getHistoricalMetrics

Get historical metrics for a time range

getHistoricalMetrics(query: HistoricalQuery): Promise<ReplicationMetrics[]>

Parameters:

ParameterTypeRequiredDescription
queryHistoricalQueryYes

Returns:

Promise<ReplicationMetrics[]> -

getTimeSeriesData

Get time series data for specific metrics

getTimeSeriesData(collections: string[], metrics: string[], timeRange: { start: Date; end: Date; }, granularity?: "minute" | "hour" | "day"): TimeSeriesData[]

Parameters:

ParameterTypeRequiredDescription
collectionsstring[]Yes
metricsstring[]Yes
timeRange{ start: Date; end: Date; }Yes
granularity"minute" | "hour" | "day"No

Returns:

TimeSeriesData[] -

getTrendAnalysis

Get trend analysis

getTrendAnalysis(collection: string, metric: string, timeRange: { start: Date; end: Date; }): TrendAnalysis

Parameters:

ParameterTypeRequiredDescription
collectionstringYes
metricstringYes
timeRange{ start: Date; end: Date; }Yes

Returns:

TrendAnalysis -

exportMetrics

Export metrics in various formats

exportMetrics(options: ExportOptions): Promise<string>

Parameters:

ParameterTypeRequiredDescription
optionsExportOptionsYes

Returns:

Promise<string> -

getSnapshotStream

Get snapshot stream

getSnapshotStream(): Observable<MetricSnapshot>

Returns:

Observable<MetricSnapshot> -

getAlertStream

Get alert stream

getAlertStream(): Observable<PerformanceAlert>

Returns:

Observable<PerformanceAlert> -

Get trends stream

getTrendsStream(): Observable<Map<string, TrendAnalysis>>

Returns:

Observable<Map<string, TrendAnalysis>> -

addAlertThreshold

Add performance alert threshold

addAlertThreshold(collection: string, metric: string, threshold: number, condition: "above" | "below" | "equals", severity?: "warning" | "info" | "critical"): void

Parameters:

ParameterTypeRequiredDescription
collectionstringYes
metricstringYes
thresholdnumberYes
condition"above" | "below" | "equals"Yes
severity"warning" | "info" | "critical"No

cleanup

Clear old data

cleanup(): Promise<{ removedSnapshots: number; freedBytes: number; }>

Returns:

Promise<{ removedSnapshots: number; freedBytes: number; }> -

getStorageStats

Get storage statistics

getStorageStats(): { totalSnapshots: number; storageUsage: number; collections: number; oldestSnapshot: Date | null; newestSnapshot: Date | null; quotaUsed: number; }

Returns:

{ totalSnapshots: number; storageUsage: number; collections: number; oldestSnapshot: Date \| null; newestSnapshot: Date \| null; quotaUsed: number; } -

destroy

Cleanup resources

destroy(): void

PerformanceThresholdMonitor

Performance threshold monitor

Constructor

constructor(thresholds?: Partial<PerformanceThresholds>)

Parameters:

ParameterTypeRequiredDescription
thresholdsPartial<PerformanceThresholds>No

Methods

checkThresholds

Check if current metrics violate thresholds

checkThresholds(metrics: PerformanceMetricsResult, resourceUsage: ResourceUsageMetrics): ThresholdViolation[]

Parameters:

ParameterTypeRequiredDescription
metricsPerformanceMetricsResultYes
resourceUsageResourceUsageMetricsYes

Returns:

ThresholdViolation[] -

onThresholdViolation

Register alert callback

onThresholdViolation(callback: (violation: ThresholdViolation) => void): () => void

Parameters:

ParameterTypeRequiredDescription
callback(violation: ThresholdViolation) => voidYes

Returns:

() => void -

updateThresholds

Update thresholds

updateThresholds(newThresholds: Partial<PerformanceThresholds>): void

Parameters:

ParameterTypeRequiredDescription
newThresholdsPartial<PerformanceThresholds>Yes

getViolationStats

Get violation statistics

getViolationStats(): Record<string, number>

Returns:

Record<string, number> -

clearViolationHistory

Clear violation history

clearViolationHistory(): void

PerformanceOptimizationEngine

Performance optimization engine

Constructor

constructor(thresholds?: Partial<PerformanceThresholds> | undefined)

Parameters:

ParameterTypeRequiredDescription
thresholdsPartial<PerformanceThresholds> | undefinedNo

Methods

analyzePerformance

Analyze performance and generate optimization recommendations

analyzePerformance(events: ReplicationEvent[], collections: Map<string, ReplicationStatus>): Promise<OptimizationRecommendation[]>

Parameters:

ParameterTypeRequiredDescription
eventsReplicationEvent[]Yes
collectionsMap<string, ReplicationStatus>Yes

Returns:

Promise<OptimizationRecommendation[]> -

applyOptimization

Apply an optimization recommendation

applyOptimization(recommendationId: string): Promise<OptimizationResult>

Parameters:

ParameterTypeRequiredDescription
recommendationIdstringYes

Returns:

Promise<OptimizationResult> -

getRecommendations

Get current optimization recommendations

getRecommendations(): OptimizationRecommendation[]

Returns:

OptimizationRecommendation[] -

getOptimizationHistory

Get optimization history

getOptimizationHistory(): OptimizationResult[]

Returns:

OptimizationResult[] -

clearOldRecommendations

Clear old recommendations

clearOldRecommendations(maxAge?: number): void

Parameters:

ParameterTypeRequiredDescription
maxAgenumberNo

ResourceUsageMonitor

Resource usage monitor

Methods

startMonitoring

Start continuous monitoring

startMonitoring(intervalMs?: number): void

Parameters:

ParameterTypeRequiredDescription
intervalMsnumberNo

stopMonitoring

Stop continuous monitoring

stopMonitoring(): void

getCurrentUsage

Get current resource usage

getCurrentUsage(): Promise<ResourceUsageMetrics>

Returns:

Promise<ResourceUsageMetrics> -

Get usage trends over time

getUsageTrends(timeWindow?: number): ResourceUsageMetrics[]

Parameters:

ParameterTypeRequiredDescription
timeWindownumberNo

Returns:

ResourceUsageMetrics[] -

ReplicationRecoveryManager

Constructor

constructor(config?: Partial<RecoveryConfig> | undefined)

Parameters:

ParameterTypeRequiredDescription
configPartial<RecoveryConfig> | undefinedNo

Methods

recoverFromError

Attempt to recover from a replication error

recoverFromError(error: Error, context: RecoveryContext): Promise<RecoveryResult>

Parameters:

ParameterTypeRequiredDescription
errorErrorYes
contextRecoveryContextYes

Returns:

Promise<RecoveryResult> -

withRecovery

Create an observable with automatic retry and recovery

withRecovery(source: Observable<T>, context: RecoveryContext): Observable<T>

Parameters:

ParameterTypeRequiredDescription
sourceObservable<T>Yes
contextRecoveryContextYes

Returns:

Observable<T> -

registerAuthRefreshCallback

Register an authentication token refresh callback

registerAuthRefreshCallback(domainId: string, callback: () => Promise<string>): void

Parameters:

ParameterTypeRequiredDescription
domainIdstringYes
callback() => Promise<string>Yes

getRecoveryStream

Get recovery attempt observable

getRecoveryStream(): Observable<RecoveryAttempt>

Returns:

Observable<RecoveryAttempt> -

getConnectionHealthStream

Get connection health observable

getConnectionHealthStream(): Observable<Map<string, ConnectionHealth>>

Returns:

Observable<Map<string, ConnectionHealth>> -

checkConnectionHealth

Manually trigger connection health check

checkConnectionHealth(endpoint?: string | undefined): Promise<ConnectionHealth>

Parameters:

ParameterTypeRequiredDescription
endpointstring | undefinedNo

Returns:

Promise<ConnectionHealth> -

resetCircuitBreaker

Reset circuit breaker for a specific endpoint

resetCircuitBreaker(key: string): void

Parameters:

ParameterTypeRequiredDescription
keystringYes

getCircuitBreakerStates

Get current circuit breaker states

getCircuitBreakerStates(): Map<string, CircuitBreakerState>

Returns:

Map<string, CircuitBreakerState> -

addRecoveryStrategy

Add custom recovery strategy

addRecoveryStrategy(strategy: RecoveryStrategy): void

Parameters:

ParameterTypeRequiredDescription
strategyRecoveryStrategyYes

removeRecoveryStrategy

Remove recovery strategy

removeRecoveryStrategy(strategyId: string): void

Parameters:

ParameterTypeRequiredDescription
strategyIdstringYes

destroy

Cleanup resources

destroy(): void

ReplicationEventFormatter

Event formatting utilities

Methods

formatEvent

Format a single event for display

formatEvent(event: ReplicationEvent, options?: EventFormatOptions): string

Parameters:

ParameterTypeRequiredDescription
eventReplicationEventYes
optionsEventFormatOptionsNo

Returns:

string -

formatEventReport

Format multiple events as a report

formatEventReport(events: ReplicationEvent[], options?: EventFormatOptions): string

Parameters:

ParameterTypeRequiredDescription
eventsReplicationEvent[]Yes
optionsEventFormatOptionsNo

Returns:

string -

generateEventSummary

Generate event summary statistics

generateEventSummary(events: ReplicationEvent[]): { totalEvents: number; firstEvent: Date; lastEvent: Date; collections: string[]; eventTypes: Record<string, number>; errorCount: number; successCount: number; avgLatency: number; }

Parameters:

ParameterTypeRequiredDescription
eventsReplicationEvent[]Yes

Returns:

{ totalEvents: number; firstEvent: Date; lastEvent: Date; collections: string[]; eventTypes: Record<string, number>; errorCount: number; successCount: number; avgLatency: number; } -

ReplicationEventFilter

Event filtering utilities

Methods

filterEvents

Filter events based on criteria

filterEvents(events: ReplicationEvent[], options: EventFilterOptions): ReplicationEvent[]

Parameters:

ParameterTypeRequiredDescription
eventsReplicationEvent[]Yes
optionsEventFilterOptionsYes

Returns:

ReplicationEvent[] -

filterByTimeWindow

Filter events by time window

filterByTimeWindow(events: ReplicationEvent[], windowMs: number, endTime?: Date): ReplicationEvent[]

Parameters:

ParameterTypeRequiredDescription
eventsReplicationEvent[]Yes
windowMsnumberYes
endTimeDateNo

Returns:

ReplicationEvent[] -

filterByErrorPattern

Filter events by error patterns

filterByErrorPattern(events: ReplicationEvent[], pattern: ReplicationErrorPattern): ReplicationEvent[]

Parameters:

ParameterTypeRequiredDescription
eventsReplicationEvent[]Yes
patternReplicationErrorPatternYes

Returns:

ReplicationEvent[] -

ReplicationEventAggregator

Event aggregation utilities

Methods

aggregateEvents

Aggregate events by specified criteria

aggregateEvents(events: ReplicationEvent[], options: EventAggregationOptions): AggregatedEventData[]

Parameters:

ParameterTypeRequiredDescription
eventsReplicationEvent[]Yes
optionsEventAggregationOptionsYes

Returns:

AggregatedEventData[] -

createErrorAggregation

Create error aggregation summary

createErrorAggregation(events: ReplicationEvent[], period: { start: Date; end: Date; }): ReplicationErrorAggregation

Parameters:

ParameterTypeRequiredDescription
eventsReplicationEvent[]Yes
period{ start: Date; end: Date; }Yes

Returns:

ReplicationErrorAggregation -

ReplicationPerformanceCalculator

Performance metrics calculator

Methods

calculateMetrics

Calculate comprehensive performance metrics

calculateMetrics(events: ReplicationEvent[], options?: PerformanceMetricsOptions): PerformanceMetricsResult

Parameters:

ParameterTypeRequiredDescription
eventsReplicationEvent[]Yes
optionsPerformanceMetricsOptionsNo

Returns:

PerformanceMetricsResult -

ReplicationMetrics

Methods

getInstance

getInstance(): ReplicationMetrics

Returns:

ReplicationMetrics -

record

Record a metric

record(name: string, value: number, tags?: Record<string, string>): void

Parameters:

ParameterTypeRequiredDescription
namestringYes
valuenumberYes
tagsRecord<string, string>No

recordSyncLatency

Record sync latency

recordSyncLatency(operation: "push" | "pull", latencyMs: number, domainId: string): void

Parameters:

ParameterTypeRequiredDescription
operation"push" | "pull"Yes
latencyMsnumberYes
domainIdstringYes

recordDocumentThroughput

Record document throughput

recordDocumentThroughput(operation: "push" | "pull", count: number, domainId: string): void

Parameters:

ParameterTypeRequiredDescription
operation"push" | "pull"Yes
countnumberYes
domainIdstringYes

recordConflict

Record conflict

recordConflict(collectionName: string, domainId: string): void

Parameters:

ParameterTypeRequiredDescription
collectionNamestringYes
domainIdstringYes

recordError

Record error

recordError(errorType: string, operation: string, domainId: string): void

Parameters:

ParameterTypeRequiredDescription
errorTypestringYes
operationstringYes
domainIdstringYes

recordStorageUsage

Record storage usage

recordStorageUsage(domainId: string, bytes: number): void

Parameters:

ParameterTypeRequiredDescription
domainIdstringYes
bytesnumberYes

recordAuthEvent

Record authentication events

recordAuthEvent(event: "retry" | "success" | "failure", domainId?: string | undefined): void

Parameters:

ParameterTypeRequiredDescription
event"retry" | "success" | "failure"Yes
domainIdstring | undefinedNo

recordNetworkLatency

Record network latency

recordNetworkLatency(endpoint: string, method: string, latencyMs: number, statusCode: number): void

Parameters:

ParameterTypeRequiredDescription
endpointstringYes
methodstringYes
latencyMsnumberYes
statusCodenumberYes

recordRetry

Record retry events

recordRetry(operation: string, attempt: number, domainId: string, successful: boolean): void

Parameters:

ParameterTypeRequiredDescription
operationstringYes
attemptnumberYes
domainIdstringYes
successfulbooleanYes

recordRateLimit

Record rate limit hits

recordRateLimit(endpoint: string, domainId: string, userId?: string | undefined): void

Parameters:

ParameterTypeRequiredDescription
endpointstringYes
domainIdstringYes
userIdstring | undefinedNo

recordConnectionStatus

Record connection status

recordConnectionStatus(status: "connected" | "disconnected" | "reconnecting", domainId: string): void

Parameters:

ParameterTypeRequiredDescription
status"connected" | "disconnected" | "reconnecting"Yes
domainIdstringYes

recordDocumentOperation

Record document operation performance

recordDocumentOperation(operation: "create" | "update" | "delete", collectionName: string, duration: number, success: boolean): void

Parameters:

ParameterTypeRequiredDescription
operation"create" | "update" | "delete"Yes
collectionNamestringYes
durationnumberYes
successbooleanYes

getSummary

Get metrics summary

getSummary(domainId?: string | undefined): MetricsSummary

Parameters:

ParameterTypeRequiredDescription
domainIdstring | undefinedNo

Returns:

MetricsSummary -

exportMetrics

Export metrics for external analysis

exportMetrics(startTime?: number | undefined, endTime?: number | undefined): Metric[]

Parameters:

ParameterTypeRequiredDescription
startTimenumber | undefinedNo
endTimenumber | undefinedNo

Returns:

Metric[] -

clear

Clear all metrics

clear(): void
Previous
Types