or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

async-operations.mdbuffered-client.mdclient-management.mddead-letter-queues.mdindex.mdmessage-operations.mdmessage-visibility.mdqueue-operations.mdqueue-permissions.mdqueue-tagging.md
tile.json

tessl/maven-com-amazonaws--aws-java-sdk-sqs

The AWS Java SDK for Amazon SQS module provides client classes for communicating with Amazon Simple Queue Service

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
mavenpkg:maven/com.amazonaws/aws-java-sdk-sqs@1.12.x

To install, run

npx @tessl/cli install tessl/maven-com-amazonaws--aws-java-sdk-sqs@1.12.0

index.mddocs/

AWS Java SDK for Amazon SQS

The AWS Java SDK for Amazon SQS module provides Java client classes for communicating with Amazon Simple Queue Service (SQS). It enables developers to interact with AWS's fully managed message queuing service, supporting both standard and FIFO queues with comprehensive functionality for creating, configuring, and managing queues, sending and receiving messages, handling message attributes, and implementing reliable distributed communication patterns.

Package Information

  • Package Name: aws-java-sdk-sqs
  • Package Type: Maven
  • Language: Java
  • Group ID: com.amazonaws
  • Artifact ID: aws-java-sdk-sqs
  • Version: 1.12.789
  • Installation: Add to Maven pom.xml:
<dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk-sqs</artifactId>
    <version>1.12.789</version>
</dependency>

Core Imports

import com.amazonaws.services.sqs.AmazonSQS;
import com.amazonaws.services.sqs.AmazonSQSClientBuilder;
import com.amazonaws.services.sqs.model.*;

For asynchronous operations:

import com.amazonaws.services.sqs.AmazonSQSAsync;
import com.amazonaws.services.sqs.AmazonSQSAsyncClientBuilder;

For buffered/optimized operations:

import com.amazonaws.services.sqs.buffered.AmazonSQSBufferedAsyncClient;
import com.amazonaws.services.sqs.buffered.QueueBufferConfig;

Basic Usage

import com.amazonaws.services.sqs.AmazonSQS;
import com.amazonaws.services.sqs.AmazonSQSClientBuilder;
import com.amazonaws.services.sqs.model.*;

// Create SQS client
AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient();

// Create a queue
CreateQueueRequest createRequest = new CreateQueueRequest("my-queue");
CreateQueueResult createResult = sqs.createQueue(createRequest);
String queueUrl = createResult.getQueueUrl();

// Send a message
SendMessageRequest sendRequest = new SendMessageRequest()
    .withQueueUrl(queueUrl)
    .withMessageBody("Hello from SQS!");
SendMessageResult sendResult = sqs.sendMessage(sendRequest);

// Receive messages
ReceiveMessageRequest receiveRequest = new ReceiveMessageRequest(queueUrl);
ReceiveMessageResult receiveResult = sqs.receiveMessage(receiveRequest);

for (Message message : receiveResult.getMessages()) {
    System.out.println("Message: " + message.getBody());
    
    // Delete the message after processing
    sqs.deleteMessage(new DeleteMessageRequest()
        .withQueueUrl(queueUrl)
        .withReceiptHandle(message.getReceiptHandle()));
}

Architecture

The AWS Java SDK for SQS is organized around several key components:

  • Client Interfaces: AmazonSQS (sync) and AmazonSQSAsync (async) provide the core API
  • Client Implementations: Standard clients (AmazonSQSClient, AmazonSQSAsyncClient) and optimized buffered client (AmazonSQSBufferedAsyncClient)
  • Client Builders: Fluent builders for easy client configuration and construction
  • Request/Response Models: Strongly-typed classes for all SQS operations
  • Exception Hierarchy: Comprehensive error handling with specific exceptions for different failure scenarios
  • Configuration: Queue-specific configuration options and buffered client tuning parameters

Capabilities

Client Management

Core client creation, configuration, and lifecycle management for connecting to Amazon SQS.

// Main synchronous client interface
interface AmazonSQS {
    void setEndpoint(String endpoint);
    void setRegion(Region region);
    void shutdown();
    ResponseMetadata getCachedResponseMetadata(AmazonWebServiceRequest request);
}

// Client builder for configuration
class AmazonSQSClientBuilder {
    static AmazonSQSClientBuilder standard();
    static AmazonSQS defaultClient();
    AmazonSQS build();
}

Client Management

Queue Operations

Complete queue lifecycle management including creation, deletion, configuration, and listing.

CreateQueueResult createQueue(CreateQueueRequest request);
DeleteQueueResult deleteQueue(DeleteQueueRequest request);
GetQueueUrlResult getQueueUrl(GetQueueUrlRequest request);
GetQueueAttributesResult getQueueAttributes(GetQueueAttributesRequest request);
SetQueueAttributesResult setQueueAttributes(SetQueueAttributesRequest request);
ListQueuesResult listQueues(ListQueuesRequest request);
PurgeQueueResult purgeQueue(PurgeQueueRequest request);

Queue Operations

Message Operations

Send, receive, and delete messages with support for both individual and batch operations.

SendMessageResult sendMessage(SendMessageRequest request);
SendMessageBatchResult sendMessageBatch(SendMessageBatchRequest request);
ReceiveMessageResult receiveMessage(ReceiveMessageRequest request);
DeleteMessageResult deleteMessage(DeleteMessageRequest request);
DeleteMessageBatchResult deleteMessageBatch(DeleteMessageBatchRequest request);

Message Operations

Message Visibility

Control message visibility timeouts to manage processing time and prevent duplicate processing.

ChangeMessageVisibilityResult changeMessageVisibility(ChangeMessageVisibilityRequest request);
ChangeMessageVisibilityBatchResult changeMessageVisibilityBatch(ChangeMessageVisibilityBatchRequest request);

Message Visibility

Queue Permissions

Manage queue access permissions for cross-account access and IAM integration.

AddPermissionResult addPermission(AddPermissionRequest request);
RemovePermissionResult removePermission(RemovePermissionRequest request);

Queue Permissions

Queue Tagging

Add, list, and remove cost allocation tags for queue organization and billing.

TagQueueResult tagQueue(TagQueueRequest request);
ListQueueTagsResult listQueueTags(ListQueueTagsRequest request);
UntagQueueResult untagQueue(UntagQueueRequest request);

Queue Tagging

Dead Letter Queues

Manage dead letter queue functionality and message redrive operations.

ListDeadLetterSourceQueuesResult listDeadLetterSourceQueues(ListDeadLetterSourceQueuesRequest request);
StartMessageMoveTaskResult startMessageMoveTask(StartMessageMoveTaskRequest request);
CancelMessageMoveTaskResult cancelMessageMoveTask(CancelMessageMoveTaskRequest request);
ListMessageMoveTasksResult listMessageMoveTasks(ListMessageMoveTasksRequest request);

Dead Letter Queues

Asynchronous Operations

Non-blocking operations with Future-based return types and callback support for improved performance.

interface AmazonSQSAsync extends AmazonSQS {
    Future<SendMessageResult> sendMessageAsync(SendMessageRequest request);
    Future<SendMessageResult> sendMessageAsync(SendMessageRequest request, 
        AsyncHandler<SendMessageRequest, SendMessageResult> asyncHandler);
    Future<ReceiveMessageResult> receiveMessageAsync(ReceiveMessageRequest request);
    // All synchronous operations have async equivalents
}

Asynchronous Operations

Buffered Client

High-performance client with automatic batching, prefetching, and configurable optimization settings.

class AmazonSQSBufferedAsyncClient implements AmazonSQSAsync {
    // Inherits all AmazonSQSAsync methods with optimized implementations
}

class QueueBufferConfig {
    // Configuration for batching and prefetching behavior
    QueueBufferConfig withMaxBatchSize(int maxBatchSize);
    QueueBufferConfig withFlushTimeoutSeconds(long flushTimeoutSeconds);
    QueueBufferConfig withVisibilityTimeoutSeconds(long visibilityTimeoutSeconds);
}

Buffered Client

Core Types

// Primary message container
class Message {
    String getMessageId();
    String getReceiptHandle();
    String getBody();
    String getMD5OfBody();
    Map<String, String> getAttributes();
    Map<String, MessageAttributeValue> getMessageAttributes();
    String getMD5OfMessageAttributes();
}

// Message attributes for additional metadata
class MessageAttributeValue {
    String getStringValue();
    java.nio.ByteBuffer getBinaryValue();
    List<String> getStringListValues();
    List<java.nio.ByteBuffer> getBinaryListValues();
    String getDataType();
}

// Queue attribute enumeration
enum QueueAttributeName {
    All, Policy, VisibilityTimeout, MaximumMessageSize, MessageRetentionPeriod,
    ApproximateNumberOfMessages, ApproximateNumberOfMessagesNotVisible,
    CreatedTimestamp, LastModifiedTimestamp, QueueArn, DelaySeconds,
    ReceiveMessageWaitTimeSeconds, RedrivePolicy, FifoQueue, ContentBasedDeduplication,
    KmsMasterKeyId, KmsDataKeyReusePeriodSeconds, DeduplicationScope,
    FifoThroughputLimit, RedriveAllowPolicy, SqsManagedSseEnabled
}

// Batch operation error details
class BatchResultErrorEntry {
    String getId();
    boolean isSenderFault();
    String getCode();
    String getMessage();
}