Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: add high throughput properties for fifo #216

Merged
merged 4 commits into from
Nov 1, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion sqs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ For publish-subscribe scenarios, use as a **publish** Operation Binding Object,

## Version

Current version is `0.1.0`.
Current version is `0.2.0`.

<a name="server"></a>

Expand Down Expand Up @@ -48,6 +48,8 @@ An SQS queue can set up a Dead Letter Queue as part of a Redelivery Policy. To s
|---|:---:|---|
| <a name="queueObjectName"></a>`name` | string | **Required.** The name of the queue. When an [SNS Operation Binding Object]() references an SQS queue by name, the identifier should be the one in this field.|
| <a name="fifoQueue"></a>`fifoQueue` | boolean | **Required.** Is this a FIFO queue? |
| <a name="deduplicationScope"></a>`deduplicationScope` | string | **Optional.** Specifies whether message deduplication occurs at the message group or queue level. Valid values are `messageGroup` and `queue`. **This property applies only to high throughput for FIFO queues.** |
| <a name="fifoThroughputLimit"></a>`fifoThroughputLimit` | string | **Optional.** Specifies whether the FIFO queue throughput quota applies to the entire queue or per message group. Valid values are `perQueue` and `perMessageGroupId`. **The `perMessageGroupId` value is allowed only when the value for DeduplicationScope is `messageGroup`. Setting both these values as such will enable high throughput on a FIFO queue. As above, this property applies only to high throughput for FIFO queues.** |
| <a name="queueObjectDeliveryDelay"></a>`deliveryDelay` | integer | **Optional.** The number of seconds to delay before a message sent to the queue can be received. Used to create a *delay queue*. Range is 0 to 15 minutes. Defaults to 0. |
| <a name="queueObjectVisbilityTimeout"></a>`visibilityTimeout` |integer| **Optional.** The length of time, in seconds, that a consumer locks a message - hiding it from reads - before it is unlocked and can be read again. Range from 0 to 12 hours (43200 seconds). Defaults to 30 seconds. |
| <a name="queueObjectRecieveMessageWaitTime"></a>`receiveMessageWaitTime` |integer| **Optional.** Determines if the queue uses [short polling](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-short-and-long-polling.html) or [long polling](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-short-and-long-polling.html). Set to zero (the default) the queue reads available messages and returns immediately. Set to a non-zero integer, long polling waits the specified number of seconds for messages to arrive before returning. |
Expand Down
20 changes: 19 additions & 1 deletion sqs/json_schemas/channel.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,11 @@
},
"bindingVersion": {
"type": "string",
"description": "The version of this binding.",
"enum": [
"0.1.0",
"0.2.0"
],
"description": "The version of this binding. If omitted, 'latest' MUST be assumed.",
"default": "latest"
}
},
Expand All @@ -47,6 +51,18 @@
"description": "Is this a FIFO queue?",
"default": false
},
"deduplicationScope": {
"type": "string",
"enum": ["queue", "messageGroup"],
"description": "Specifies whether message deduplication occurs at the message group or queue level. Valid values are messageGroup and queue (default).",
"default": "queue"
},
"fifoThroughputLimit": {
"type": "string",
"enum": ["perQueue", "perMessageGroupId"],
"description": "Specifies whether the FIFO queue throughput quota applies to the entire queue or per message group. Valid values are perQueue (default) and perMessageGroupId.",
"default": "perQueue"
},
"deliveryDelay": {
"type": "integer",
"description": "The number of seconds to delay before a message sent to the queue can be received. used to create a delay queue.",
Expand Down Expand Up @@ -207,6 +223,8 @@
"queue": {
"name": "myQueue",
"fifoQueue": true,
"deduplicationScope": "messageGroup",
"fifoThroughputLimit": "perMessageGroupId",
"deliveryDelay": 15,
"visibilityTimeout": 60,
"receiveMessageWaitTime": 0,
Expand Down
21 changes: 20 additions & 1 deletion sqs/json_schemas/operation.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,11 @@
},
"bindingVersion": {
"type": "string",
"description": "The version of this binding.",
"enum": [
"0.1.0",
"0.2.0"
],
"description": "The version of this binding. If omitted, 'latest' MUST be assumed.",
"default": "latest"
}
},
Expand Down Expand Up @@ -50,6 +54,18 @@
"description": "Is this a FIFO queue?",
"default": false
},
"deduplicationScope": {
Gadam8 marked this conversation as resolved.
Show resolved Hide resolved
"type": "string",
"enum": ["queue", "messageGroup"],
"description": "Specifies whether message deduplication occurs at the message group or queue level. Valid values are messageGroup and queue (default).",
"default": "queue"
},
"fifoThroughputLimit": {
"type": "string",
"enum": ["perQueue", "perMessageGroupId"],
"description": "Specifies whether the FIFO queue throughput quota applies to the entire queue or per message group. Valid values are perQueue (default) and perMessageGroupId.",
"default": "perQueue"
},
"deliveryDelay": {
"type": "integer",
"description": "The number of seconds to delay before a message sent to the queue can be received. Used to create a delay queue.",
Expand Down Expand Up @@ -209,6 +225,9 @@
"queues": [
{
"name": "myQueue",
"fifoQueue": true,
"deduplicationScope": "messageGroup",
"fifoThroughputLimit": "perMessageGroupId",
"deliveryDelay": 10,
"redrivePolicy": {
"deadLetterQueue": {
Expand Down