Skip to content

Commit dce0eda

Browse files
authored
Merge pull request #393 from pelaezryan/v2.x-Release2.3.0
Preparing for KCL Node v2.3.0 release
2 parents e187368 + be3710b commit dce0eda

File tree

5 files changed

+32
-111
lines changed

5 files changed

+32
-111
lines changed

README.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,8 +271,23 @@ In this release, we have abstracted these implementation details away and expose
271271
* [Amazon Kinesis documentation][amazon-kinesis-docs]
272272
* [Amazon Kinesis forum][kinesis-forum]
273273

274+
## 🚨Important: Migration to Node KCL 2.3.0 (or later) with MultiLangDaemon - Credential Provider Changes Required
275+
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 Node 2.x versions,
276+
v2.3.0 is the first node release to use Java KCL 2.7.0. All MultiLangDaemon users upgrading from earlier versions must update
277+
their credential provider configuration in the `.properties` file to use credentials provider name for AWS SDK for Java 2.x.
278+
Failure to do this will cause your multilang KCL application to fail during startup with credential provider construction errors.
279+
Please check the following link for the credentials provider mapping and MultiLangDaemon credentials provider configuration guide.
280+
281+
- [AWS SDK for Java 1.x to 2.x Credentials Provider Mapping](aws.amazon.com/sdk-for-java/latest/developer-guide/migration-client-credentials.html#credentials-changes-mapping)
282+
- [KCL Multilang Credentials Provider Configuration Guide](https://github.com/aws/amazon-kinesis-client/blob/master/docs/multilang/configuring-credential-providers.md)
283+
274284

275285
## Release Notes
286+
### Release 2.3.0 (March 12, 2025) - IMPORTANT: See section ``Migration to Node KCL 2.3.0`` to ensure upgrading does not break compatibility
287+
* Upgraded amazon-kinesis-client from 2.6.1 to 2.7.0 - [Java 2.7.0 release notes](https://github.com/awslabs/amazon-kinesis-client/releases/tag/v2.7.0)
288+
* [PR #392](https://github.com/awslabs/amazon-kinesis-client-nodejs/pull/392) Upgraded netty from 4.1.108 to 4.1.118
289+
* [PR #392](https://github.com/awslabs/amazon-kinesis-client-nodejs/pull/392) Upgraded logback from 1.3.14 to 1.5.16
290+
276291
### Release 2.2.7 (January 22, 2025)
277292
* Upgraded amazon-kinesis-client from 2.5.8 to 2.6.1 - [Java 2.6.1 release notes](https://github.com/awslabs/amazon-kinesis-client/releases/tag/v2.6.1)
278293

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "aws-kcl",
33
"description": "Kinesis Client Libray (KCL) in Node.js.",
4-
"version": "2.2.7",
4+
"version": "2.3.0",
55
"author": {
66
"name": "Amazon Web Services",
77
"url": "http://aws.amazon.com/"
@@ -60,4 +60,4 @@
6060
"kcl",
6161
"node.js"
6262
]
63-
}
63+
}

pom.xml

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<properties>
55
<awssdk.version>2.25.64</awssdk.version>
66
<aws-java-sdk.version>1.12.668</aws-java-sdk.version>
7-
<kcl.version>2.6.1</kcl.version>
7+
<kcl.version>2.7.0</kcl.version>
88
<netty.version>4.1.118.Final</netty.version>
99
<netty-reactive.version>2.0.6</netty-reactive.version>
1010
<fasterxml-jackson.version>2.13.5</fasterxml-jackson.version>
@@ -31,18 +31,6 @@
3131
<artifactId>dynamodb</artifactId>
3232
<version>${awssdk.version}</version>
3333
</dependency>
34-
<!-- https://mvnrepository.com/artifact/software.amazon.awssdk/dynamodb-enhanced -->
35-
<dependency>
36-
<groupId>software.amazon.awssdk</groupId>
37-
<artifactId>dynamodb-enhanced</artifactId>
38-
<version>${awssdk.version}</version>
39-
</dependency>
40-
<!-- https://mvnrepository.com/artifact/com.amazonaws/dynamodb-lock-client -->
41-
<dependency>
42-
<groupId>com.amazonaws</groupId>
43-
<artifactId>dynamodb-lock-client</artifactId>
44-
<version>1.3.0</version>
45-
</dependency>
4634
<dependency>
4735
<groupId>software.amazon.awssdk</groupId>
4836
<artifactId>cloudwatch</artifactId>

samples/basic_sample/consumer/sample.properties

Lines changed: 12 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,12 @@
33
# over STDIN and STDOUT according to the multi-language protocol.
44
executableName = node sample_kcl_app.js
55

6+
# The Stream arn: arn:aws:kinesis:<region>:<account id>:stream/<stream name>
7+
# Important: streamArn takes precedence over streamName if both are set
8+
# streamArn = arn:aws:kinesis:us-east-5:000000000000:stream/kclnodejssample
9+
610
# The name of an Amazon Kinesis stream to process.
11+
# Important: streamArn takes precedence over streamName if both are set
712
streamName = kclnodejssample
813

914
# Used by the KCL as the name of this application. Will be used as the name
@@ -27,10 +32,15 @@ processingLanguage = nodejs/0.10
2732
# See http://docs.aws.amazon.com/kinesis/latest/APIReference/API_GetShardIterator.html#API_GetShardIterator_RequestSyntax
2833
initialPositionInStream = TRIM_HORIZON
2934

35+
# To specify an initial timestamp from which to start processing records, please specify timestamp value for 'initiatPositionInStreamExtended',
36+
# and uncomment below line with right timestamp value.
37+
# See more from 'Timestamp' under http://docs.aws.amazon.com/kinesis/latest/APIReference/API_GetShardIterator.html#API_GetShardIterator_RequestSyntax
38+
#initialPositionInStreamExtended = 1636609142
39+
3040
# The following properties are also available for configuring the KCL Worker that is created
3141
# by the MultiLangDaemon.
3242

33-
# Region of the stream for the KCL.
43+
# The KCL defaults to us-east-1
3444
regionName = us-east-1
3545

3646
# Fail over time in milliseconds. A worker which does not renew it's lease within this time interval
@@ -82,96 +92,4 @@ regionName = us-east-1
8292
# If a value is provided then a FixedThreadPool is used with the maximum
8393
# active threads set to the provided value. If a non-positive integer or no
8494
# value is provided a CachedThreadPool is used.
85-
#maxActiveThreads = 0
86-
87-
# By default, KCL will emit metrics for Operation, ShardId, and WorkerIdentifier dimensions
88-
# Specify the specific dimensions to emit metrics for
89-
#metricsEnabledDimensions = Operation,ShardId
90-
91-
################### KclV3 configurations ###################
92-
# NOTE : These are just test configurations to show how to customize
93-
# all possible KCLv3 configurations. They are not necessarily the best
94-
# default values to use for production.
95-
96-
# Coordinator config
97-
# Version the KCL needs to operate in. For more details check the KCLv3 migration
98-
# documentation. Default is CLIENT_VERSION_CONFIG_3X
99-
# clientVersionConfig =
100-
# Configurations to control how the CoordinatorState DDB table is created
101-
# Default name is applicationName-CoordinatorState in PAY_PER_REQUEST,
102-
# with PITR and deletion protection disabled and no tags
103-
# coordinatorStateTableName =
104-
# coordinatorStateBillingMode =
105-
# coordinatorStateReadCapacity =
106-
# coordinatorStateWriteCapacity =
107-
# coordinatorStatePointInTimeRecoveryEnabled =
108-
# coordinatorStateDeletionProtectionEnabled =
109-
# coordinatorStateTags =
110-
111-
# Graceful handoff config - tuning of the shutdown behavior during lease transfers
112-
# default values are 30000 and true respectively
113-
# gracefulLeaseHandoffTimeoutMillis =
114-
# isGracefulLeaseHandoffEnabled =
115-
116-
# WorkerMetricStats table config - control how the DDB table is created
117-
# Default name is applicationName-WorkerMetricStats in PAY_PER_REQUEST,
118-
# with PITR and deletion protection disabled and no tags
119-
# workerMetricsTableName =
120-
# workerMetricsBillingMode =
121-
# workerMetricsReadCapacity =
122-
# workerMetricsWriteCapacity =
123-
# workerMetricsPointInTimeRecoveryEnabled =
124-
# workerMetricsDeletionProtectionEnabled =
125-
# workerMetricsTags =
126-
127-
# WorkerUtilizationAwareAssignment config - tune the new KCLv3 Lease balancing algorithm
128-
#
129-
# frequency of capturing worker metrics in memory. Default is 1s
130-
# inMemoryWorkerMetricsCaptureFrequencyMillis =
131-
132-
# frequency of reporting worker metric stats to storage. Default is 30s
133-
# workerMetricsReporterFreqInMillis =
134-
135-
# No. of metricStats that are persisted in WorkerMetricStats ddb table, default is 10
136-
# noOfPersistedMetricsPerWorkerMetrics =
137-
138-
# Disable use of worker metrics to balance lease, default is false.
139-
# If it is true, the algorithm balances lease based on worker's processing throughput.
140-
# disableWorkerMetrics =
141-
142-
# Max throughput per host 10 MBps, to limit processing to the given value
143-
# Default is unlimited.
144-
145-
# maxThroughputPerHostKBps =
146-
# Dampen the load that is rebalanced during lease re-balancing, default is 60%
147-
# dampeningPercentage =
148-
# Configures the allowed variance range for worker utilization. The upper
149-
# limit is calculated as average * (1 + reBalanceThresholdPercentage/100).
150-
# The lower limit is average * (1 - reBalanceThresholdPercentage/100). If
151-
# any worker's utilization falls outside this range, lease re-balancing is
152-
# triggered. The re-balancing algorithm aims to bring variance within the
153-
# specified range. It also avoids thrashing by ensuring the utilization of
154-
# the worker receiving the load after re-balancing doesn't exceed the fleet
155-
# average. This might cause no re-balancing action even the utilization is
156-
# out of the variance range. The default value is 10, representing +/-10%
157-
# variance from the average value.
158-
# reBalanceThresholdPercentage =
159-
160-
# Whether at-least one lease must be taken from a high utilization worker
161-
# during re-balancing when there is no lease assigned to that worker which has
162-
# throughput is less than or equal to the minimum throughput that needs to be
163-
# moved away from that worker to bring the worker back into the allowed variance.
164-
# Default is true.
165-
# allowThroughputOvershoot =
166-
167-
# Lease assignment is performed every failoverTimeMillis but re-balance will
168-
# be attempted only once in 5 times based on the below config. Default is 3.
169-
# varianceBalancingFrequency =
170-
171-
# Alpha value used for calculating exponential moving average of worker's metricStats.
172-
# workerMetricsEMAAlpha =
173-
# Duration after which workerMetricStats entry from WorkerMetricStats table will
174-
# be cleaned up.
175-
# Duration format examples: PT15M (15 mins) PT10H (10 hours) P2D (2 days)
176-
# Refer to Duration.parse javadocs for more details
177-
# staleWorkerMetricsEntryCleanupDuration =
95+
#maxActiveThreads = 0

0 commit comments

Comments
 (0)