How to store failed Lambda asynchronous invocations with least overhead?
A developer has an application that asynchronously invokes an AWS Lambda function. The developer wants to store messages that resulted in failed invocations of the Lambda function so that the application can retry the call later. What should the developer do to accomplish this goal with the LEAST operational overhead?
Community Votes
100% of anonymous learners picked answer C. Votes are pick records left by other test-takers — they are not the verified answer.
Community Insight
The exam tests the built-in Lambda asynchronous invocation DLQ feature; the trap is choosing a manual SQS/EventBridge architecture when Lambda already provides a native dead-letter configuration.
For failed asynchronous Lambda invocations, AWS recommends using a Lambda dead-letter queue (DLQ) to capture discarded events. This approach minimizes operational overhead compared to manually wiring CloudWatch filters or custom SQS event sources.
Option D is the most tempting wrong answer because it uses SQS directly, but for asynchronous Lambda invocations you can configure a DLQ directly on the Lambda function and attach it as an event source, requiring less custom code and overhead.
Community Discussion (4 comments)
Comments & Corrections
No comments yet — spotted an error or have a note? Share it below.
Expert Analysis
Why the Answer Is Correct
Option C is correct because AWS Lambda natively supports configuring a dead-letter queue (DLQ) for asynchronous invocations. When Lambda exhausts retries, the failed event is sent to the specified SQS queue or SNS topic. This is a built-in feature, so there is no need to build custom filtering or routing logic, keeping operational overhead low.
Using the DLQ as an event source for the Lambda function makes it easy to retry the failed messages later. The SQS queue holds the discarded events, and when it is configured as an event source, Lambda can process those messages again automatically. This matches the goal of storing failed messages and retrying them with minimal manual intervention.
Community comments reinforce this point. One comment notes that async Lambda invocations allow a DLQ to be created from the Lambda function, while sync invocations require the DLQ to be created by SQS. Another comment provides the official AWS documentation link, confirming that the DLQ is the standard solution for this scenario.
Why the Other Options Are Wrong
Option A is wrong because setting up CloudWatch Logs log groups, filtering, and then importing messages into Lambda is not a native dead-letter mechanism. It requires custom code and extra moving parts, which increases operational overhead significantly.
Option B is wrong because EventBridge sending messages to SNS to initiate Lambda again does not provide a durable dead-letter store with native retry semantics. SNS is a push notification service, not a queue designed for holding failed events for later replay.
Option D is wrong because while SQS can store failed messages and trigger Lambda, it is not the least operational overhead approach for asynchronous Lambda invocations. Lambda already offers a built-in DLQ feature that sends failed events directly to SQS or SNS without requiring the developer to design a separate EventBridge/SQS integration.
Community Comment Notes
Community members overwhelmingly voted for C, with 100% of the votes agreeing. A high-liked comment clarifies the key difference: for async invocations, Lambda can create the DLQ; for sync invocations, SQS must create it. This distinction is a common exam point.
Another comment includes the official AWS documentation link for Lambda async invocation DLQs, reinforcing that the feature is designed exactly for this use case. The comments do not suggest any hidden trap or alternative answer, so C is confident.
Official Reference
Exam Strategy
When you see 'least operational overhead' for Lambda async failures, look for the built-in dead-letter queue configuration. Remember: for async invocations, the DLQ is set on the Lambda function; for sync invocations, it must be handled by the caller or SQS.
Related Analysis
Practice All DVA-C02 Questions
Access 100 questions with complete answers and detailed explanations.
View Full DVA-C02 Practice Test →