Golang library for consuming Kinesis stream data
Find a file
2016-01-09 09:52:47 -08:00
examples Add error checking for tmp file 2016-01-09 09:52:47 -08:00
.gitignore Use go-kit Log interface 2015-05-25 22:40:40 -07:00
all_pass_filter.go Use golint to update Golang styles 2014-12-10 15:38:19 -08:00
awsbackoff.go Use AWS SDK for S3 Emitter 2015-08-16 17:52:10 -07:00
awsbackoff_test.go Logging and DB connection reuse 2015-05-25 22:23:40 -07:00
buffer.go Use AWS SDK 2015-08-15 23:17:49 -07:00
checkpoint.go Use golint to update Golang styles 2014-12-10 15:38:19 -08:00
CONTRIBUTING.md Rename License file and add Contributing sections 2015-05-23 10:24:53 -07:00
emitter.go Use AWS SDK 2015-08-15 23:17:49 -07:00
filter.go Use golint to update Golang styles 2014-12-10 15:38:19 -08:00
kinesis.go Use go-kit Log interface 2015-05-25 22:40:40 -07:00
logger.go Use GoKit logger interface directly 2015-05-26 18:50:34 -07:00
manifest.go Add Redshift Manifest functionality 2014-12-10 21:59:42 -08:00
MIT-LICENSE Rename License file and add Contributing sections 2015-05-23 10:24:53 -07:00
pipeline.go Use AWS SDK for S3 Emitter 2015-08-16 17:52:10 -07:00
README.md Add Redshift Pipeline example 2015-05-25 23:18:14 -07:00
record_buffer.go Use AWS SDK 2015-08-15 23:17:49 -07:00
record_buffer_test.go Use AWS SDK 2015-08-15 23:17:49 -07:00
redis_checkpoint.go Use golint to update Golang styles 2014-12-10 15:38:19 -08:00
redis_checkpoint_test.go Base pipeline components 2014-11-14 20:45:34 -08:00
redshift_basic_emitter.go Use AWS SDK for S3 Emitter 2015-08-16 17:52:10 -07:00
redshift_basic_emitter_test.go Logging and DB connection reuse 2015-05-25 22:23:40 -07:00
redshift_manifest_emitter.go Use go-kit Log interface 2015-05-25 22:40:40 -07:00
redshift_manifest_emitter_test.go Add Redshift Manifest functionality 2014-12-10 21:59:42 -08:00
s3_emitter.go Use AWS SDK for S3 Emitter 2015-08-16 17:52:10 -07:00
s3_emitter_test.go Logging and DB connection reuse 2015-05-25 22:23:40 -07:00
s3_manifest_emitter.go Use AWS SDK 2015-08-15 23:17:49 -07:00
string_to_string_transformer.go Use golint to update Golang styles 2014-12-10 15:38:19 -08:00
transformer.go Sort exported fields alphabetically 2014-11-15 17:20:25 -08:00

Golang Kinesis Connectors

Kinesis connector applications written in Go

Inspired by the Amazon Kinesis Connector Library. These components are used for extracting streaming event data into S3, Redshift, DynamoDB, and more. See the API Docs for package documentation.

golang_kinesis_connector

Overview

Each Amazon Kinesis connector application is a pipeline that determines how records from an Amazon Kinesis stream will be handled. Records are retrieved from the stream, transformed according to a user-defined data model, buffered for batch processing, and then emitted to the appropriate AWS service.

A connector pipeline uses the following interfaces:

  • Pipeline: The pipeline implementation itself.
  • Transformer: Defines the transformation of records from the Amazon Kinesis stream in order to suit the user-defined data model. Includes methods for custom serializer/deserializers.
  • Filter: Defines a method for excluding irrelevant records from the processing.
  • Buffer: Defines a system for batching the set of records to be processed. The application can specify three thresholds: number of records, total byte count, and time. When one of these thresholds is crossed, the buffer is flushed and the data is emitted to the destination.
  • Emitter: Defines a method that makes client calls to other AWS services and persists the records stored in the buffer. The records can also be sent to another Amazon Kinesis stream.

Installation

Get the package source:

$ go get github.com/harlow/kinesis-connectors

Example Pipelines

Examples pipelines:

Logging

Default logging is handled by go-kit package log. Applications can override the default loging behaviour by implementing the Logger interface.

connector.SetLogger(NewCustomLogger())

Contributing

Please see CONTRIBUTING.md for more information. Thank you, contributors!

License

Copyright (c) 2015 Harlow Ward. It is free software, and may be redistributed under the terms specified in the LICENSE file.