Я читал о том, как Uber реализует логику повторов в Kafka:
https://eng.uber.com/reliable-reprocessing/
Uber использует X количество повторных тем / потоков, чтобы повторить X количество раз. Причиной для этого является то, что Kafka выполняет второе чтение для получения метаданных сообщения, поэтому вы удваиваете количество выполнений чтения, если вы повторяете попытку с помощью Kafka API.
Применимо ли это к AWS Kinesis, или метаданные доступны для AWS, когда вы читаете сообщение?