Answer – C and D
The AWS Documentation mentions the following.
Delay queues let you postpone the delivery of new messages to a queue for several seconds. If you create a delay queue, any messages you send to the queue remain invisible to consumers for the duration of the delay period. The default (minimum) delay for a queue is 0 seconds. The maximum is 15 minutes.
To set delay seconds on individual messages, rather than on an entire queue, use message timers to allow Amazon SQS to use the message timer`s DelaySeconds value instead of the delay queue`s DelaySeconds value.
Option A is invalid since this can only make the message invisible after the message has been read and not in the beginning.
Option B is invalid since this is used to reduce the cost of using Amazon SQS by eliminating the number of empty responses from SQS queues.
For more information on SQS delay queues, please refer to the below URL-
https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-delay-queues.html