UNPKG

kinesis-client-library

Version:

Process Kinesis streams and automatically scale up or down as shards split or merge.

52 lines (51 loc) 1.72 kB
import { EventEmitter } from 'events'; import { ClientConfig } from 'aws-sdk'; import { Cluster, Capacity as ClusterCapacity } from './lib/models/Cluster'; export interface ConsumerClusterOpts { streamName: string; tableName: string; awsConfig: ClientConfig; dynamoEndpoint?: string; localDynamo: Boolean; kinesisEndpoint?: string; localKinesis: Boolean; localKinesisPort?: string; capacity: ClusterCapacity; startingIteratorType?: string; logLevel?: string; numRecords?: number; timeBetweenReads?: number; } export declare class ConsumerCluster extends EventEmitter { cluster: Cluster; private opts; private logger; private kinesis; private isShuttingDownFromError; private externalNetwork; private consumers; private consumerIds; private lastGarbageCollectedAt; private endpoints; constructor(pathToConsumer: string, opts: ConsumerClusterOpts); private init(); private getKinesisEndpoint(); private getDynamoEndpoint(); serveHttp(port: string | number): void; private consumeAvailableShard(shardId, leaseCounter); private updateNetwork(); private shouldTryToAcquireMoreShards(); private hasTooManyShards(); private fetchAvailableShard(); private spawn(shardId, leaseCounter); private addConsumer(consumer); private killConsumer(callback); private killConsumerById(id, callback); private killAllConsumers(callback); private loopFetchExternalNetwork(); private fetchExternalNetwork(callback); private loopReportClusterToNetwork(); private reportClusterToNetwork(callback); private garbageCollectClusters(); private logAndEmitError(err, desc?); }