Release 2.0.0
-
The Maven
groupId
, along with theversion
, for the Amazon Kinesis Client has changed fromcom.amazonaws
tosoftware.amazon.kinesis
.
To add a dependency on the new version of the Amazon Kinesis Client:<dependency> <groupId>software.amazon.kinesis</groupId> <artifactId>amazon-kinesis-client</artifactId> <version>2.0.0</version> </dependency>
-
Added support for Enhanced Fan Out.
Enhanced Fan Out provides for lower end to end latency, and increased number of consumers per stream.- Records are now delivered via streaming, reducing end-to-end latency.
- The Amazon Kinesis Client will automatically register a new consumer if required.
When registering a new consumer, the Kinesis Client will default to the application name unless configured otherwise. SubscribeToShard
maintains long lived connections with Kinesis, which in the AWS Java SDK 2.0 is limited by default.
TheKinesisClientUtil
has been added to assist configuring themaxConcurrency
of theKinesisAsyncClient
.
WARNING: The Amazon Kinesis Client may see significantly increased latency, unless theKinesisAsyncClient
is configured to have amaxConcurrency
high enough to allow all leases plus additional usages of theKinesisAsyncClient
.- The Amazon Kinesis Client now uses 3 additional Kinesis API's:
WARNING: If using a restrictive Kinesis IAM policy you may need to add the following API methods to the policy. - New configuration options are available to configure Enhanced Fan Out.
Name Default Description consumerArn Unset The ARN for an already created consumer. If this is set, the Kinesis Client will not attempt to create a consumer. streamName Unset The name of the stream that a consumer should be create for if necessary consumerName Unset The name of the consumer to create. If this is not set the applicationName will be used instead. applicationName Unset The name of the application. This is used as the name of the consumer unless consumerName is set. -
Modular Configuration of the Kinesis Client
The Kinesis Client has migrated to a modular configuration system, and theKinesisClientLibConfiguration
class has been removed.
Configuration has been split into 7 classes. Default versions of the configuration can be created from theConfigsBuilder
.
Please [see the migration guide for more information][migration-guide].CheckpointConfig
CoordinatorConfig
LeaseManagementConfig
LifecycleConfig
MetricsConfig
ProcessorConfig
RetrievalConfig
-
Upgraded to AWS Java SDK 2.0
The Kinesis Client now uses the AWS Java SDK 2.0. The dependency on AWS Java SDK 1.11 has been removed.
All configurations will only accept 2.0 clients.- When configuring the
KinesisAsyncClient
theKinesisClientUtil#createKinesisAsyncClient
can be used to configure the Kinesis Client - If you need support for AWS Java SDK 1.11 you will need to add a direct dependency.
When adding a dependency you must ensure that the 1.11 versions of Jackson dependencies are excluded
[Please see the migration guide for more information][migration-guide]
- When configuring the
-
MultiLangDaemon is now a separate module
The MultiLangDaemon has been separated to its own Maven module and is no longer available inamazon-kinesis-client
. To include the MultiLangDaemon, add a dependency onamazon-kinesis-client-multilang
.