Skip to content

Commit

Permalink
docs: add high throughput properties for fifo (asyncapi#216)
Browse files Browse the repository at this point in the history
* docs: Add high throughput properties for fifo

* Use enums

* Add another example

* Bump version

---------

Co-authored-by: adam.gloyne <[email protected]>
  • Loading branch information
Gadam8 and adam.gloyne authored Nov 1, 2023
1 parent 6a3537d commit c6a15e2
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 3 deletions.
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": {
"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

0 comments on commit c6a15e2

Please sign in to comment.