Which solution will meet these requirements?
Add an item to an Amazon DynamoDB table. Set the item TTL to 10 minutes. Invoke the Lambda function when the TTL expires.
Create an ongoing Amazon EventBridge (Amazon CloudWatch Events) rule with a rate expression of 600 seconds. Create a rule/target to invoke the Lambda function.
Send a message to an Amazon Simple Queue Service (Amazon SQS) delay queue. Set the queue to 600 seconds. Configure the Lambda function with the queue as an event source.
Put a record in Amazon Kinesis Data Streams. Configure the Lambda function to use the data stream as an event source. Define the shard iterator AT_TIMESTAMP setting to 10 minutes.
Explanations:
While adding an item to DynamoDB with a TTL of 10 minutes might appear to be a valid solution, DynamoDB TTL is designed to delete items automatically once they expire. It does not trigger events directly when the TTL expires, so it would not invoke the Lambda function as required.
EventBridge with a rate expression of 600 seconds would create a recurring rule to trigger an event every 10 minutes. However, this would trigger the Lambda function periodically, not specifically 10 minutes after a user completes a new account registration.
Sending a message to an SQS delay queue for 600 seconds would correctly delay the invocation of the Lambda function. SQS supports setting a delay on messages, and the Lambda function can be configured to trigger when the message is delivered after the delay period.
Kinesis Data Streams are not designed for time-based delays. Using the shard iterator AT_TIMESTAMP to trigger the Lambda function 10 minutes after an event is not suitable, as Kinesis operates on continuous data streams rather than delayed execution.