Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Amazon Web Services
  3. amazon-kinesis-client

amazon-kinesis-client

Apache-2.0Javav3.5.0

A Java client library for building scalable, fault-tolerant applications that consume and process data from Amazon Kinesis Data Streams.

GitHubGitHub
662 stars484 forks0 contributors

What is amazon-kinesis-client?

Amazon Kinesis Client Library (KCL) is a Java library for building applications that consume and process data from Amazon Kinesis Data Streams. It solves the problem of handling the operational complexities of distributed stream processing, such as load balancing, fault tolerance, and checkpointing, allowing developers to focus on their data processing logic.

Target Audience

Java developers building real-time data processing applications on AWS, particularly those who need to consume high-volume, streaming data from Kinesis Data Streams with reliability and scalability.

Value Proposition

Developers choose KCL because it provides a managed, production-ready framework for stream consumption that handles scaling, fault tolerance, and checkpointing automatically, reducing the need to build and maintain custom distributed systems infrastructure.

Overview

Client library for Amazon Kinesis

Use Cases

Best For

  • Building real-time analytics pipelines that consume data from Kinesis Data Streams
  • Creating fault-tolerant event processing applications on AWS
  • Developing scalable data consumers that need automatic load balancing
  • Implementing stream processing applications that require checkpointing for stateful processing
  • Writing multi-language stream processors using the MultiLangDaemon
  • Applications that need to handle Kinesis shard splits and merges automatically

Not Ideal For

  • Projects using non-AWS streaming platforms like Apache Kafka or Google Pub/Sub
  • Simple event processing with low data volume where lightweight consumers suffice
  • Teams seeking a fully serverless solution without managing worker instances
  • Applications requiring exactly-once message delivery semantics

Pros & Cons

Pros

Managed Scalability

Dynamically scales processing across workers, supporting manual or auto-scaling without load redistribution, as highlighted in the Scalability feature section of the README.

Robust Fault Tolerance

Provides at-least-once delivery and continuous processing during worker failures, with built-in mechanisms ensuring reliability even in distributed failures.

Automatic Stream Adaptation

Handles shard splits and merges seamlessly, maintaining ordering by processing child shards only after parent completion, as described in the Stream-Level Change Handling feature.

Multi-Language Flexibility

Supports Java natively and enables other languages through MultiLangDaemon, allowing diverse development teams to write processors in languages like Python without Java expertise.

Cons

Complex Version Migration

KCL 1.x is nearing end-of-support, requiring non-trivial interface and credential provider updates to migrate to 3.x, as warned in the IMPORTANT notice, adding maintenance overhead.

AWS SDK Dependency Risks

Specific AWS SDK for Java versions (2.27.19-2.27.23) cause DynamoDB exceptions with KCL 3.x, necessitating careful version management and updates, as highlighted in the warning box.

Vendor Lock-in

Tightly integrated with Amazon Kinesis and AWS ecosystem, making it unsuitable for multi-cloud or on-premises deployments without significant rework.

Frequently Asked Questions

Quick Stats

Stars662
Forks484
Contributors0
Open Issues220
Last commit1 day ago
CreatedSince 2013

Tags

#stream-processing#kinesis#data-consumer#java-client#java#fault-tolerance#amazon-kinesis#checkpointing#scalability#aws#cloudwatch

Built With

M
Maven
A
AWS SDK for Java
J
Java

Included in

Amazon Web Services14.0k
Auto-fetched 1 day ago

Related Projects

amazon-kinesis-produceramazon-kinesis-producer

Amazon Kinesis Producer Library

Stars415
Forks343
Last commit29 days ago
amazon-kinesis-client-pythonamazon-kinesis-client-python

Amazon Kinesis Client Library for Python

Stars376
Forks228
Last commit29 days ago
amazon-kinesis-scaling-utilsamazon-kinesis-scaling-utils

The Kinesis Scaling Utility is designed to give you the ability to scale Amazon Kinesis Streams in the same way that you scale EC2 Auto Scaling groups – up or down by a count or as a percentage of the total fleet. You can also simply scale to an exact number of Shards. There is no requirement for you to manage the allocation of the keyspace to Shards when using this API, as it is done automatically.

Stars335
Forks84
Last commit2 years ago
amazon-kinesis-connectorsamazon-kinesis-connectors

The Amazon Kinesis Connector Library is a Java framework that simplifies the integration of Amazon Kinesis data streams with various storage and analytics services. It provides a structured pipeline for processing, transforming, and emitting streaming data to destinations such as DynamoDB, Redshift, S3, and Elasticsearch, enabling real-time data workflows. ## Key Features - **Modular Pipeline** — Implements interfaces for transformation, filtering, buffering, and emission to define custom data flows. - **Pre-built Connectors** — Includes ready-to-use connectors for AWS DynamoDB, Redshift, S3, and Elasticsearch. - **Batch Processing** — Buffers records based on configurable thresholds (count, size, time) for efficient batch writes. - **Custom Transformations** — Supports user-defined data models and serializers via the ITransformer interface. - **Sample Implementations** — Provides complete sample applications with Ant/Maven build files for each connector type. ## Philosophy The library emphasizes a decoupled, extensible architecture where developers can plug in custom logic for each stage of the data pipeline, promoting flexibility and reuse in stream processing applications.

Stars327
Forks185
Last commit5 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub