Add an SQS queue
to your arc.codes project, while exposing more of SQS' configurations than the default architect
@queues
.
- Customization of many of SQS' configurations, such as visibility timeouts, message retention and polling times.
- The main differentiator between this plugin and the default
@queue
implementation in arc is the ability to configure a long polling queue. Arc, by default, implements short polling, which can eat through the SQS free tier quickly.
- The main differentiator between this plugin and the default
- The ability to set up a dead-letter queue.
Install this plugin as per the arc.codes docs. It is available on npm: arc-plugin-queues-extended.
Then, add a @queues-extended
section to your app.arc
file. Each entry under this section will create a new queue.
The following app.arc
example section will create two queues:
- a queue with logical ID
overflowQ
with all default settings, and - a queue with logical ID
someQ
with a custom message retention period and its dead-letter queue set to the aboveoverflowQ
@queues-extended
overflowQ
someQ
retention 69420
dlq overflowQ
The full table of options and configurations follow:
Option | Description | Default |
---|---|---|
dlq |
Sets up a dead-letter queue for the housing queue. The string you provide should match the name of another queue defined using this plugin. For example, if you set dlq overflowQ on a mainQ defined with this plugin, make sure you add a queue named overflowQ under the @queues-extended pragma. Failing to do so will cause your arc deploy to fail. |
Not applicable. |
polling |
Sets the queue's ReceiveMessageWaitTimeSeconds in seconds. Accepts integers between 0 and 20 inclusive. Please carefully read Amazon SQS short and long polling to understand the implications of tweaking this setting. Architect's default @queues implementation sets this to 0 , meaning, short polling. Increase this value to reduce the amount of polling SQS will do to collect messages, and thus, have a chance to reduce your bill. |
0 (short polling) |
retention |
Sets the queue's MessageRetentionPeriod in seconds. |
345600 (4 days) |
timeout |
Sets the queue's VisibilityTimeout in seconds. |
30 (30 seconds) |