Skip to content

Releases: awslabs/amazon-kinesis-client-net

Release 4.1.1 of the Amazon Kinesis Client for .NET

30 Oct 16:48
f5762cc

Choose a tag to compare

Release 4.1.1 (October 29, 2025)

  • #286 Upgrade netty.version from 4.2.4.Final to 4.2.7.Final

Release 4.1.0 of the Amazon Kinesis Client for .NET

02 Oct 00:54
4bfb838

Choose a tag to compare

Release 4.1.0 (October 1, 2025)

  • #276 Add multi-lang support for leaseAssignmentIntervalMillis
  • #281 Upgrade amazon-kinesis-client from 3.0.0 to 3.1.3
  • #281 Upgrade aws-sdk from 2.25.64 to 2.33.0
  • #281 Upgrade netty.version from 4.1.108.Final to 4.2.4.Final
  • #281 Upgrade fasterxml-jackson from 2.13.5 to 2.15.0
  • #281 Upgrade checker-qual from 2.5.2 to 3.49.4
  • #281 Upgrade org.apache.commons:commons-lang3 from 3.14.0 to 3.18.0
  • #266 Upgrade commons-beanutils from 1.9.4 to 1.11.0

Release 3.1.2 of the Amazon Kinesis Client for .NET

01 Oct 23:48
9e43a9a

Choose a tag to compare

Release 3.1.2 (October 1, 2025)

  • #279 Upgrade amazon-kinesis-client from 2.7.0 to 2.7.2
  • #279 Upgrade aws-sdk from 2.25.64 to 2.33.0
  • #279 Upgrade org.apache.commons:commons-lang3 from 3.14.0 to 3.18.0
  • #279 Upgrade netty.version from 4.1.118 to 4.2.4.Final
  • #279 Upgrade fasterxml-jackson from 2.13.15 to 2.15.0

Release 4.0.1 of the Amazon Kinesis Client for .NET

28 May 20:21
4f272b0

Choose a tag to compare

Release (4.0.1 - May 28, 2025)

  • #264 Bump ch.qos.logback:logback-core from 1.3.14 to 1.3.15
  • #263 Bump io.netty:netty-handler from 4.1.108.Final to 4.1.118.Final

Release 3.1.1 of the Amazon Kinesis Client for .NET

26 Mar 17:37
af941fa

Choose a tag to compare

Release 3.1.1 (March 26, 2025)

  • Downgrade logback from 1.5.16 to 1.3.15 to maintain JDK 8 compatibility

Release 3.1.0 of the Amazon Kinesis Client for .NET

13 Mar 21:29
e493382

Choose a tag to compare

🚨Important: Migration to .NET KCL 3.1.0 or later with MultiLangDaemon - Credential Provider Changes Required

Java KCL version 2.7.0 and later uses AWS SDK for Java 2.x instead of AWS SDK for Java 1.x. For the KCL .NET 3.x versions,
v3.1.0 is the first .NET release to use Java KCL 2.7.0. All MultiLangDaemon users upgrading from earlier versions must update
their credential provider configuration in the .properties file to use credentials provider name for AWS SDK for Java 2.x.
Failure to do this will cause your multilang KCL application to fail during startup with credential provider construction errors.
Please check the following link for the credentials provider mapping and MultiLangDaemon credentials provider configuration guide

Release 3.1.0 (March 13, 2025) IMPORTANT: See section Migration to .NET KCL 3.1.0 to ensure upgrading does not break compatibility

  • #1444 Fully remove dependency on the AWS SDK for Java 1.x which will reach end-of-support by December 31st, 2025.
    • The Glue Schema Registry integration functionality no longer depends on AWS SDK for Java 1.x. Previously, it required this as a transient dependency.
    • Multilangdaemon has been upgraded to use AWS SDK for Java 2.x. It no longer depends on AWS SDK for Java 1.x.
  • #254 Upgrade logback.version from 1.3.14 to 1.5.16
  • #254 Upgrade netty.version from 4.1.108.Final to 4.1.118.Final

#Notes:
Encountered an error where we were getting a credential issue. It turns out the package was using an old jar version file. This could happen when you build the package with the old version and then it gets cached. Seems like dotnet clean/dotnet restore does not delete these old jar files or cache so the fix is to manually delete them. In this case, the jar files for 2.6.1 was deleted and then the application started working.

Release 3.0.2 of the Amazon Kinesis Client for .NET

23 Jan 03:37
ec350af

Choose a tag to compare

Release 3.0.2 (January 22, 2025)

v4.0.0

06 Nov 21:21
2c8317b

Choose a tag to compare

Release 4.0.0 (November 6, 2024)

  • New lease assignment / load balancing algorithm
    • KCL 3.x introduces a new lease assignment and load balancing algorithm. It assigns leases among workers based on worker utilization metrics and throughput on each lease, replacing the previous lease count-based lease assignment algorithm.
    • When KCL detects higher variance in CPU utilization among workers, it proactively reassigns leases from over-utilized workers to under-utilized workers for even load balancing. This ensures even CPU utilization across workers and removes the need to over-provision the stream processing compute hosts.
  • Optimized DynamoDB RCU usage
    • KCL 3.x optimizes DynamoDB read capacity unit (RCU) usage on the lease table by implementing a global secondary index with leaseOwner as the partition key. This index mirrors the leaseKey attribute from the base lease table, allowing workers to efficiently discover their assigned leases by querying the index instead of scanning the entire table.
    • This approach significantly reduces read operations compared to earlier KCL versions, where workers performed full table scans, resulting in higher RCU consumption.
  • Graceful lease handoff
    • KCL 3.x introduces a feature called "graceful lease handoff" to minimize data reprocessing during lease reassignments. Graceful lease handoff allows the current worker to complete checkpointing of processed records before transferring the lease to another worker. For graceful lease handoff, you should implement checkpointing logic within the existing shutdownRequested() method.
    • This feature is enabled by default in KCL 3.x, but you can turn off this feature by adjusting the configuration property isGracefulLeaseHandoffEnabled.
    • While this approach significantly reduces the probability of data reprocessing during lease transfers, it doesn't completely eliminate the possibility. To maintain data integrity and consistency, it's crucial to design your downstream consumer applications to be idempotent. This ensures that the application can handle potential duplicate record processing without adverse effects.
  • New DynamoDB metadata management artifacts
    • KCL 3.x introduces two new DynamoDB tables for improved lease management:
      • Worker metrics table: Records CPU utilization metrics from each worker. KCL uses these metrics for optimal lease assignments, balancing resource utilization across workers. If CPU utilization metric is not available, KCL assigns leases to balance the total sum of shard throughput per worker instead.
      • Coordinator state table: Stores internal state information for workers. Used to coordinate in-place migration from KCL 2.x to KCL 3.x and leader election among workers.
    • Follow this documentation to add required IAM permissions for your KCL application.
  • Other improvements and changes
    • Dependency on the AWS SDK for Java 1.x has been fully removed.
      • The Glue Schema Registry integration functionality no longer depends on AWS SDK for Java 1.x. Previously, it required this as a transient dependency.
      • Multilangdaemon has been upgraded to use AWS SDK for Java 2.x. It no longer depends on AWS SDK for Java 1.x.
    • idleTimeBetweenReadsInMillis (PollingConfig) now has a minimum default value of 200.
      • This polling configuration property determines the publishers wait time between GetRecords calls in both success and failure cases. Previously, setting this value below 200 caused unnecessary throttling. This is because Amazon Kinesis Data Streams supports up to five read transactions per second per shard for shared-throughput consumers.
    • Shard lifecycle management is improved to deal with edge cases around shard splits and merges to ensure records continue being processed as expected.
  • Migration
    • The programming interfaces of KCL 3.x remain identical with KCL 2.x for an easier migration. For detailed migration instructions, please refer to the Migrate consumers from KCL 2.x to KCL 3.x page in the Amazon Kinesis Data Streams developer guide.
  • Configuration properties
    • New configuration properties introduced in KCL 3.x are listed in this doc.
    • Deprecated configuration properties in KCL 3.x are listed in this doc. You need to keep the deprecated configuration properties during the migration from any previous KCL version to KCL 3.x.
  • Metrics
    • New CloudWatch metrics introduced in KCL 3.x are explained in the Monitor the Kinesis Client Library with Amazon CloudWatch in the Amazon Kinesis Data Streams developer guide. The following operations are newly added in KCL 3.x:
      • LeaseAssignmentManager
      • WorkerMetricStatsReporter
      • LeaseDiscovery

Release 3.0.1 of the Amazon Kinesis Client for .NET

24 Apr 23:33
4e7f798

Choose a tag to compare

Release 3.0.1 (April 24, 2024)

  • Upgrade amazon-kinesis-client from 2.4.4 to 2.5.8
  • Upgrade netcoreapp from 5.0 to 6.0
  • Upgrade awssdk.version from 2.19.2 to 2.19.16
  • Upgrade fasterxml-jackson.version from 2.13.4 to 2.14.5
  • Upgrade protobuf-java from 3.21.5 to 3.23.0
  • Upgrade aws-java-sdk-core from 1.12.370 to 1.12.468
  • Upgrade error_prone_annotations from 2.7.1 to 2.19.1
  • Upgrade NSubstitute from 3.1.0 to 5.1.0
  • Upgrade Stateless from 2.5.11.0 to 5.13.0
  • Upgrade MSTest.TestFramework from 1.3.2 to 3.1.1
  • Upgrade MSTest.TestAdapter from 1.3.2 to 3.1.1
  • Upgrade com.google.protobuf:protobuf-java from 3.21.5 to 3.21.7
  • Upgrade jackson-databind from 2.13.4 to 2.13.4.2
  • Upgrade guava from 31.0.1-jre to 32.1.1-jre
  • Upgrade io.netty:netty-codec-http from 4.1.86.Final to 4.1.108.Final
  • Upgrade Microsoft.Extensions.DependencyInjection from 6.0.0 to 8.0.0
  • Upgrade ch.qos.logback:logback-core from 1.3.0 to 1.3.12
  • Upgrade Microsoft.NET.Test.Sdk from 15.5.0 to 17.9.0
  • Upgrade AWSSDK.Kinesis from 3.7.1.5 to 3.7.301.73
  • Upgrade commons-collections4 from 4.2 to 4.4
  • Upgrade commons-logging from 1.1.3 to 1.2
  • Upgrade NUnit3TestAdapter from 3.9.0 to 4.5.0
  • Upgrade CommandLineParser from 2.2.1 to 2.9.1
  • Upgrade Microsoft.NET.Test.Sdk from 15.5.0 to 17.9.0
  • Upgrade NUnit from 3.9.0 to 4.1.0
  • Upgrade ion-java from 1.5.1 to 1.11.4

Full Changelog: v3.0.0...v3.0.1

Release 3.0.0 of the Amazon Kinesis Client for .NET

13 Jan 18:05

Choose a tag to compare

What's Changed

Full Changelog: v2.0.0...v3.0.0