arc-plugin-queues-extended
v0.0.1
Published
Architect (arc.codes) serverless framework plugin that creates SQS-based queues and exposes more SQS options above the default architect queue implementation
Downloads
4
Maintainers
Readme
arc-plugin-queues-extended
Add an SQS queue to your arc.codes project, while exposing more of SQS' configurations than the default architect `@queues.
Features
- 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.
Configuration
Install this plugin as per the arc.codes docs.
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)|