What should a solutions architect do to resolve this issue?
Update the Kinesis Data Streams default settings by modifying the data retention period.
Update the application to use the Kinesis Producer Library (KPL) to send the data to Kinesis Data Streams.
Update the number of Kinesis shards to handle the throughput of the data that is sent to Kinesis Data Streams.
Turn on S3 Versioning within the S3 bucket to preserve every version of every object that is ingested in the S3 bucket.
Explanations:
Modifying the data retention period will ensure that data stays in Kinesis Data Streams for a longer period, allowing the application to consume data even if there are delays.
While the Kinesis Producer Library (KPL) improves efficiency in sending data, it does not address data retention or ensure that data is available for delayed processing.
Increasing the number of shards will improve data throughput capacity but does not address the issue of missing data due to the data not being retained long enough.
Enabling S3 Versioning will preserve all versions of objects, but it will not address data loss due to missing data from Kinesis Data Streams before it reaches S3.