github awslabs/amazon-kinesis-client v2.0.0
Release 2.0.0 of the Amazon Kinesis Client Library for Java

latest releases: v3.0.1, v3.0.0, v1.15.2...
6 years ago

Release 2.0.0

  • The Maven groupId, along with the version, for the Amazon Kinesis Client has changed from com.amazonaws to software.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.
      The KinesisClientUtil has been added to assist configuring the maxConcurrency of the KinesisAsyncClient.
      WARNING: The Amazon Kinesis Client may see significantly increased latency, unless the KinesisAsyncClient is configured to have a maxConcurrency high enough to allow all leases plus additional usages of the KinesisAsyncClient.
    • 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 the KinesisClientLibConfiguration class has been removed.
    Configuration has been split into 7 classes. Default versions of the configuration can be created from the ConfigsBuilder.
    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 the KinesisClientUtil#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]
  • MultiLangDaemon is now a separate module
    The MultiLangDaemon has been separated to its own Maven module and is no longer available in amazon-kinesis-client. To include the MultiLangDaemon, add a dependency on amazon-kinesis-client-multilang.

Don't miss a new amazon-kinesis-client release

NewReleases is sending notifications on new releases.