Two quick thoughts:
I had a lot of stability trouble using the Java Kinesis Client Library in a high-throughput system - though technically this was for DynamoDB Stream which uses an adapter for the KCL, but is subtly different from Kinesis itself I gather. That may have been an exacerbating factor since there’s less control over sharding there.
It does look like they released a fix for a cause of KCL instability, but it took them almost a year to release the fix despite having identified the problem the same day it was reported. That was disappointing, and ultimately too late for what we were evaluating it for.
Seeing this article reminded me to check up on the KCL issue, so I’m happy they plugged that hole and it’s seen some improvements since the last time I checked.