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
TypeScript
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?);
}