MLS-C01 Data Engineering Practice Question
A company is streaming real-time sensor data from IoT devices to Amazon Kinesis Data Streams. The data is then consumed by an AWS Lambda function that enriches the records with metadata from an Amazon DynamoDB table and writes the results to an Amazon S3 bucket. Recently, the Lambda function has been failing with 'ProvisionedThroughputExceededException' errors from DynamoDB. The data volume is variable, with occasional bursts. Which solution should a data engineer implement to resolve this issue without losing data?
⚠ Common exam trap
Watch out — candidates often confuse buffering the Lambda invocation (Option B) with addressing the DynamoDB throttling error, but the error occurs inside the Lambda function after invocation, so an SQS queue does not solve the read capacity 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
✓
Enable DynamoDB auto scaling for the table to automatically adjust read capacity based on demand.
DynamoDB auto scaling dynamically adjusts the table's provisioned read capacity based on actual traffic patterns, handling bursty sensor data without manual intervention. This prevents ProvisionedThroughputExceededExceptions while ensuring no data loss, as the Lambda function can retry failed operations. Auto scaling is the most cost-effective and operationally efficient solution for variable workloads.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
Increase the DynamoDB table's provisioned read capacity units to a high static value.
Why it's wrong here
Static high capacity is costly and may still be exceeded during extreme bursts.
- ✗
Use an Amazon SQS queue to buffer the Lambda requests before querying DynamoDB.
Why it's wrong here
Buffering with SQS adds latency and does not prevent DynamoDB throttling if the requests are still bursty.
- ✓
Enable DynamoDB auto scaling for the table to automatically adjust read capacity based on demand.
Why this is correct
Auto scaling adjusts capacity dynamically to handle bursts without manual intervention.
- ✗
Configure an Amazon SNS topic to throttle the data stream before it reaches Lambda.
Why it's wrong here
SNS is for pub/sub messaging, not for throttling or buffering data streams.
Visual reference
Quick reference
AWS S3 Storage Class Comparison
| Storage Class | Min Duration | Retrieval | Use Case |
|---|---|---|---|
| S3 Standard | None | Immediate | Frequently accessed data |
| S3 Standard-IA | 30 days | Immediate | Infrequent access, rapid retrieval |
| S3 One Zone-IA | 30 days | Immediate | Non-critical infrequent data |
| S3 Intelligent-Tiering | None | Immediate–hours | Unknown or changing access patterns |
| S3 Glacier Instant | 90 days | Milliseconds | Archive with instant retrieval |
| S3 Glacier Flexible | 90 days | Minutes–hours | Archive, flexible retrieval |
| S3 Glacier Deep Archive | 180 days | Hours | Long-term compliance archive |
Go deeper
Related to this question
About these practice questions
Courseiva writes every MLS-C01 question from scratch — 1,672 in total, each with an explanation and a wrong-answer breakdown. None are copied from real exams or dumps. Learn why practice questions differ from exam dumps →
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.