Kinesis writable stream that buffers up records
Records written to the stream will buffer up until highWaterMark
has
been reached, or the stream is closed, before writing to Kinesis using
putRecords
.
Failed items will be retried up until options.maxRetries
has been
reached. The initial timeout before the retry is set in
options.retryTimeout
and it increases by the fibonnaci sequence.
The partition key is by default a random number, but this can be
adjusted by overriding streamInstance.getPartitionKey(record)
.
Its also possible to send in the option flushTimeout
to indicate
that the items currently in the buffer should be flushed after the
given amount of milliseconds if the highWaterMark
haven't been
reached.
A bunyan,
winston or similar logger
instance that have methods like debug
, error
and info
may be
sent in as options.logger
to the constructor.
var KinesisWritable = require('kinesis-write-stream');
var stream = new KinesisWritable(kinesisClient, 'streamName', {
highWaterMark: 16,
maxRetries: 3,
retryTimeout: 100
});
inputStream.pipe(stream);
See api.md.
MIT