A data engineer is implementing a streaming data ingestion solution using Amazon Kinesis Data Streams. The goal is to ensure that if a failure occurs during the ingestion process, the system can resume from where it left off, without reprocessing already ingested data. Which approach should the engineer take to meet this requirement?