Amazon SQS AWS JSON protocol FAQs
Frequently asked questions about using AWS JSON protocol with Amazon SQS.
What is AWS JSON protocol, and how does it differ from existing Amazon SQS API requests and responses?
JSON is one of the most widely used and accepted wiring methods for communication between heterogeneous systems. Amazon SQS uses JSON as a medium to communicate between an AWS SDK client (for example, Java, Python, Golang, JavaScript) and Amazon SQS server. An HTTP request of an Amazon SQS API operation accepts input in the form of JSON. The Amazon SQS operation is executed and the response of execution is shared back to the SDK client in the form of JSON. Compared to AWS query, JSON is more efficient at transporting data between client and server.
-
Amazon SQS AWS JSON protocol acts as a mediator between Amazon SQS client and server.
-
The server doesn’t understand the programming language in which the Amazon SQS operation is created, but it understands the AWS JSON protocol.
-
The Amazon SQS AWS JSON protocol uses the serialization (convert object to JSON format) and deserialization (convert JSON format to object) between the Amazon SQS client and server.
How do I get started with AWS JSON protocols for Amazon SQS?
To get started with the latest AWS SDK version to achieve faster messaging for Amazon SQS, upgrade your AWS SDK to the specified version or any subsequent version. To learn more about SDK clients, see the Guide column in the table below.
The following is a list of SDK versions across language variants for AWS JSON protocol for use with Amazon SQS APIs:
Language | SDK client repository | Required SDK client version | Guide |
---|---|---|---|
C++ |
|||
Golang 1.x |
|||
Golang 2.x |
|||
Java 1.x |
|||
Java 2.x |
|||
JavaScript v2.x |
|||
JavaScript v3.x |
|||
.NET |
|||
PHP |
|||
Python-boto3 |
|||
Python-botocore |
|||
awscli |
|||
Ruby |
What are the risks of enabling JSON protocol for my Amazon SQS workloads?
If you are using a custom implementation of AWS SDK or a combination of custom clients and AWS SDK to interact with Amazon SQS that generates AWS Query based (aka XML-based) responses, it may be incompatible with AWS JSON protocol. If you encounter any issues, contact AWS Support.
What if I am already on the latest AWS SDK version, but my open sourced solution does not support JSON?
You must change your SDK version to the version previous to what you are using. See How do I get started with AWS JSON protocols for Amazon SQS? for more information. AWS SDK versions listed in How do I get started with AWS JSON protocols for Amazon SQS? uses JSON wire protocol for Amazon SQS APIs. If you change your AWS SDK to the previous version, your Amazon SQS APIs will use the AWS query.
What languages are supported for AWS JSON protocol used in Amazon SQS APIs?
Amazon SQS supports all language variants where AWS SDKs are generally
available (GA). Currently, we don't support Kotlin, Rust, or Swift. To learn more
about other language variants, see Tools to Build on AWS
What regions are supported for AWS JSON protocol used in Amazon SQS APIs
Amazon SQS supports AWS JSON protocol in all AWS regions where Amazon SQS is available.
What latency improvements can I expect when upgrading to the specified AWS SDK versions for Amazon SQS using the AWS JSON protocol?
AWS JSON protocol is more efficient at serialization and deserialization of requests and responses when compared to AWS query protocol. Based on AWS performance tests for a 5 KB message payload, JSON protocol for Amazon SQS reduces end-to-end message processing latency by up to 23%, and reduces application client side CPU and memory usage.
Will AWS query protocol be deprecated?
AWS query protocol will continue to be supported. You can continue using AWS query protocol as long as your AWS SDK version is set any previous version other that what is listed in How do I get started with AWS JSON protocols for Amazon SQS.
Where can I find more information about AWS JSON protocol?
You can find more information about JSON protocol at AWS JSON 1.0 protocol