Amazon Simple Queue Service (SQS) configuration

  • Updated:

When setting up your Amazon Simple Queue Service (SQS) account for Buzz's API servers to write into, you need to configure cross-account access.

Amazon SQS Limitations: Review to make sure SQS is right for you

FIFO SQS Queues may not be a suitable solution, as they are limited to 300 transactions per second, which is likely to be exceeded in most use cases.

Standard SQS Queues, according to the documentation as of 2023-04-05 "support a nearly unlimited number of API calls per second, per API action," so they are ideal for high throughput data streaming, but only retain events for four days (this can be increased up to a maximum of 14 days), so you will need a process on your side to process these events and store them in some other system if you want to keep them for more than a few days.

Event notifications may retry a few times (based on AWS SDK retry policies), but will not retry outside of that, so if limits are exceeded, event notifications may be lost.

Create SQS Queue

In the AWS Console:

  1. Navigate to Amazon SQS > Queues.
  2. Click Create Queue.
  1. Select the SQS Type you want and enter the SQS Name.
  2. Complete the rest of your setup as you normally do for internal use, following AWS instructions, and click Create queue.

Create an IAM Role and cross-account access

Next, create an IAM Role that grants access to Agilix's AWS account, so Buzz can write to your SQS queue.

  1. Navigate to IAM > Roles.
  2. Click Create role.
  1. Under Select trusted entity, select AWS account as the Trusted entity type.
  2. Select Another AWS account and enter the Agilix AWS account number (you can get this number through your support account or sales representative).
  3. Click Next.
  1. Now, you can select or create the permissions you want associated with this role. Assuming you don't already have a role set up for this, click Create policy.
    • Note: If you already have a role set up, skip to Step 11.
  1. In the JSON editor, use the following configuration to enter your data, including your own AWS account number (because you're granting permissions to your role and delivery stream):
	"Version": "2012-10-17",
	"Statement": [
			"Sid": "VisualEditor0",
			"Effect": "Allow",
			"Action": [
			"Resource": "arn:aws:sqs:us-east-1:____________:_________________"
Click to copy
  1. Click Next: Tags, and enter any tags you want on that screen, then click Next: Review
  1. Enter the policy Name and Description.
  2. Click Create policy
  1. Return to the Create role screen from Step 6 (this may still be open in another tab depending on your browser).
  2. Click the refresh button next to the Create policy button
  3. Find the policy you just created (you can search for the Name you provided in Step 9) and check its box.
  4. Click Next.
  1. Provide a Role name and Description.
  2. Review the trusted Entities, Permissions, and Tags if needed.
  3. Click Create role.
  1. This takes you to the role summary page; click Edit.
  1. Change the Maximum session duration to 12 hours.
  2. Save changes.

Configure Buzz API Console

Lastly, log into the Buzz API Console:

  1. Select the POST Method.
  2. In POST Data, enter JSON for the SetDataStreamConfiguration command as shown, using:
    • Your domain ID.
    • Your selected title.
    • The name of your SQS queue.
    • The ARN for the cross-account role you created above.
      • Note: No ARN is needed for the queue name because it will be looked up in the context of the specified role.
  3. Send request and review Result.
    • If the response has an error, check for mistakes made in the setup based on the error message.
    • If the response has code:OK, you can remove the line with test:true and change enabled:false to enabled:true to push the configuration and begin receiving data stream events to the queue you've configured.

Have a question or feedback? Let us know over in Discussions!