Courseiva
Data EngineeringhardMultiple ChoiceObjective-mapped

MLS-C01 Data Engineering Practice Question

A data engineering team is building a real-time data pipeline using Amazon Kinesis Data Streams with AWS Lambda for processing. The pipeline ingests clickstream data from a mobile app. The team notices that occasionally, a Lambda function fails due to a transient error, and the failed record is not retried, leading to data loss. The Lambda function is configured with a batch size of 100 and a maximum retry count of 0. The team wants to ensure that all records are processed successfully, even if transient failures occur. They also want to minimize the impact of poison pill records that could block processing. Which combination of actions should the team take to address this issue?

Answer choices

Why each option matters

Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.

Correct answer & explanation

Set the maximum retry count to 5, configure an on-failure destination Amazon SQS queue, and set up a dead-letter queue on that SQS queue for poison pills.

To address the issue of data loss due to transient errors and poison pill records, the team should increase the Lambda function's maximum retry count to 5 to allow retries on transient failures. However, even with retries, some records may fail repeatedly (poison pills) which can block the shard if not handled. Configuring an on-failure destination (such as an Amazon SQS queue) on the Lambda function sends all records that failed after retries to that queue. Then, by setting up a dead-letter queue on that SQS queue, poison pill records are isolated and can be examined or reprocessed separately, preventing them from blocking the main processing pipeline. Option A is incorrect because a dead-letter queue on Lambda alone is not sufficient – it captures failures after retries if configured, but the key is to also have an on-failure destination to offload failures. Option B is incorrect because Kinesis Data Firehose is designed for streaming data to destinations like S3, not for real-time per-record Lambda processing with built-in retry logic; it would change the architecture. Option D is incorrect because reducing batch size to 1 would increase costs and processing time, and may not fully resolve transient errors or poison pill issues.

Answer analysis

Option-by-option breakdown

For each option: why learners choose it and why it is or isn't the right answer here.

  • Set the maximum retry count to 5 and configure a dead-letter queue on the Lambda function to capture failed records after retries.

    Why it's wrong here

    Lambda's built-in DLQ is for asynchronous invocations, not for Kinesis event source mappings. Need a custom destination.

  • Switch to using Amazon Kinesis Data Firehose to buffer data and use AWS Lambda for transformation with built-in retry logic.

    Why it's wrong here

    Firehose does not provide per-record processing and may introduce latency.

  • Set the maximum retry count to 5, configure an on-failure destination Amazon SQS queue, and set up a dead-letter queue on that SQS queue for poison pills.

    Why this is correct

    This provides retries and isolates poison pills without blocking the main stream.

  • Reduce the batch size to 1 and increase the Lambda function timeout to handle transient errors.

    Why it's wrong here

    Reducing batch size may cause throttling and does not handle poison pills.

Visual reference

Client Recursive Resolver Root DNS (13 root servers) TLD DNS (.com, .org, …) Authoritative example.com query IP addr answer

Quick reference

AWS S3 Storage Class Comparison

Storage ClassMin DurationRetrievalUse Case
S3 StandardNoneImmediateFrequently accessed data
S3 Standard-IA30 daysImmediateInfrequent access, rapid retrieval
S3 One Zone-IA30 daysImmediateNon-critical infrequent data
S3 Intelligent-TieringNoneImmediate–hoursUnknown or changing access patterns
S3 Glacier Instant90 daysMillisecondsArchive with instant retrieval
S3 Glacier Flexible90 daysMinutes–hoursArchive, flexible retrieval
S3 Glacier Deep Archive180 daysHoursLong-term compliance archive

About these practice questions

One of 1,672 original MLS-C01 practice questions on Courseiva, each with a full explanation and wrong-answer analysis — not exam dumps or protected exam content. Learn why practice questions differ from exam dumps →

How Courseiva writes practice questions · Editorial policy

JA

Written by Johnson Ajibi, MSc IT Security

Senior Network & Security Engineer · founder of Courseiva

This MLS-C01 practice question is part of Courseiva's free Amazon Web Services certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the MLS-C01 exam.