Skip to content

A pure Golang port of the Kinesis Consumer Library

License

Notifications You must be signed in to change notification settings

patrobinson/gokini

Repository files navigation

Gokini

GoDoc Build Status

A Golang Kinesis Consumer Library with minimal dependencies. This library does not depend on the Java MultiLangDaemon but does use the AWS SDK.

Project Goals

This project aims to provide feature parity with the Kinesis Client Library including:

  • Enumerates shards

  • Coordinates shard associations with other workers

  • Instantiates a record processor for every shard it manages

  • Checkpoints processed records

  • Balances shard-worker associations when the worker instance count changes

  • Balances shard-worker associations when shards are split or merged

  • Instrumentation that supports CloudWatch (partial support)

  • Support enhanced fan-out consumers

  • Support aggregated records from Kinesis Producer library

Development Status

Beta - Ready to be used in non-critical Production environments.

Actively used (via a fork) by VMWare

Testing

Unit tests can be run with:

go test consumer_test.go consumer.go checkpointer_test.go checkpointer.go monitoring.go monitoring_test.go

Integration tests can be run in docker with:

make docker-integration