private List<String> delete(List<Message> messages) {
        if (messages == null || messages.isEmpty()) {
            return null;
        }

        DeleteMessageBatchRequest batch = new DeleteMessageBatchRequest().withQueueUrl(queueURL);
        List<DeleteMessageBatchRequestEntry> entries = batch.getEntries();

        messages.forEach(
                m ->
                        entries.add(
                                new DeleteMessageBatchRequestEntry()
                                        .withId(m.getId())
                                        .withReceiptHandle(m.getReceipt())));

        DeleteMessageBatchResult result = client.deleteMessageBatch(batch);
        List<String> failures =
                result.getFailed().stream()
                        .map(BatchResultErrorEntry::getId)
                        .collect(Collectors.toList());
        LOGGER.debug("Failed to delete messages from queue: {}: {}", queueName, failures);
        return failures;
    }
@param visibilityTimeout Visibility timeout for the message in SECONDS
@return builder instance
awssqs-event-queue/src/main/java/com/netflix/conductor/sqs/eventqueue/SQSObservableQueue.java