A company's application uses Amazon S3 to store user-uploaded images. Users report that recently uploaded images are sometimes not immediately available for viewing. The application uses S3 Event Notifications to trigger a Lambda function that processes images and stores metadata in DynamoDB. What is the MOST likely cause of the delay?
S3 Event Notifications are delivered asynchronously and on a best-effort basis, meaning there can be an inherent, variable delay between an object being uploaded and the corresponding Lambda function being invoked. If the application immediately polls for the *processed* image after the initial upload, it creates a race condition where the polling might occur before the S3 event has triggered the Lambda function to process the image, or before the processing itself has completed and the processed image is stored. This asynchronous nature and potential latency in event delivery are a common cause for such perceived delays.
Why this answer
S3 Event Notifications are delivered asynchronously and can take seconds to minutes to reach Lambda, so if the application polls for the processed image or metadata immediately after upload, it may query before Lambda has run. This race condition between the upload and the notification-driven processing is the most likely cause of the intermittent delay.
Exam trap
DVA-C02 often tests whether candidates still believe S3 is eventually consistent for new writes (it has been strongly consistent since 2020) and whether they understand that event notifications are asynchronous, so the trap is blaming cold starts or DynamoDB throttling instead of the notification latency and polling race.
How to eliminate wrong answers
Option A is wrong because Lambda cold starts add hundreds of milliseconds to a few seconds, not the kind of noticeable delay described, and they would not cause 'sometimes not immediately available' behavior tied to polling. Option B is wrong because since December 2020 S3 provides strong read-after-write consistency for new object PUTs, so the object is immediately readable — the old eventual-consistency model no longer applies. Option D is wrong because DynamoDB read throttling would produce errors or retries, not a delay in image availability, and the scenario describes metadata retrieval rather than capacity exhaustion.