1.5.0
-
Introduces the implementation of periodic shard sync in conjunction with Amazon Kinesis Client Library v1.11.x (KCL). The default shard sync strategy is to discover new/child shards only when a consumer completes processing a shard. This default strategy constrains horizontal scaling of customer applications when consuming tables with 10,000+ partitions due to increased DescribeStream calls. Periodic shard sync guarantees that only a subset of the fleet (by default 10) will perform shard syncs, and decouples DescribeStream call volume from growth in fleet size.
-
Improves inconsistency handling in DescribeStream result aggregation by fixing any parent-open-child-open cases. This ensures that shard sync does not fail due to an assertion failure in KCL on this type of inconsistency.
-
Modifies finished shard lease cleanup mechanism. Leases for shards that have been completely processed are now deleted only after all their children shards have been completely processed. This will prevent shard lineage replay issues, instances of which have been reported in the past by some customers.
-
Introduces
StreamsLeaseTaker
with improved load-balancing of leases among workers.- SHARD_END and non-SHARD_END check-pointed leases are balanced independently.
- Leases are now stolen evenly from other workers instead of from only the most loaded worker.
MaxLeasesToStealAtOneTime
no longer needs to be specified by users. It is now determined automatically based on the number of leases held by the worker. The user-specified value for this is no longer used.
-
Users should continue using factory methods from
StreamsWorkerFactory
to create KCL Worker as specified in the guidance of Release v1.4.x.