IntegrationsDatabasesAmazon DynamoDB

Amazon DynamoDB

Datafly Signal delivers events to Amazon DynamoDB for fully managed, serverless NoSQL storage with single-digit millisecond read and write performance at any scale.

Prerequisites

Before configuring Amazon DynamoDB in Signal, you need an AWS account with a DynamoDB table and IAM credentials. Follow the steps below.

Create an AWS Account

If you don’t already have one, sign up at aws.amazon.com. Ensure billing is configured and you have console access.

Create a DynamoDB Table

  1. Open the DynamoDB console.
  2. Click Create table.
  3. Enter a Table name (e.g. datafly_events).
  4. Set the Partition key to message_id (type: String). Optionally add a Sort key such as timestamp (type: String) for time-range queries.
  5. Leave the default settings (on-demand capacity mode is recommended for unpredictable workloads) or choose provisioned capacity if you have predictable traffic.
  6. Click Create table.

On-demand capacity mode automatically scales to handle your traffic. If you expect consistent high throughput, provisioned capacity with auto-scaling may be more cost-effective.

Create an IAM User for Signal

  1. Open the IAM console.
  2. Go to Users > Create user.
  3. Enter a username (e.g. datafly-signal-dynamodb).
  4. Select Attach policies directly.
  5. Click Create policy and use the following JSON:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "dynamodb:PutItem",
        "dynamodb:BatchWriteItem"
      ],
      "Resource": "arn:aws:dynamodb:us-east-1:123456789012:table/datafly_events"
    }
  ]
}
  1. Replace the region, account ID, and table name with your values.
  2. Attach the policy to the user.

Generate Access Keys

  1. On the IAM user detail page, go to Security credentials.
  2. Under Access keys, click Create access key.
  3. Select Application running outside AWS.
  4. Click Create access key.
  5. Copy the Access Key ID and Secret Access Key immediately — the secret is only shown once.
⚠️

Store these credentials securely. If you lose the secret access key, you must create a new key pair.

Configuration

FieldTypeRequiredDescription
table_namestringYesThe DynamoDB table name to write items to.
regionselectYesThe AWS region where the DynamoDB table is located.
access_key_idsecretYesThe AWS access key ID for authentication.
secret_access_keysecretYesThe AWS secret access key for authentication.
partition_keystringYesThe partition key attribute name used in your table. Defaults to message_id.

Signal Setup

Quick Setup

  1. Navigate to Integrations in the sidebar.
  2. Open the Integration Library tab.
  3. Find Amazon DynamoDB or filter by Cloud Storage.
  4. Click Install, select a variant if available, and fill in the required fields.
  5. Click Install Integration to create the integration with a ready-to-use default blueprint.

API Setup

curl -X POST http://localhost:8084/v1/admin/integration-catalog/amazon_dynamodb/install \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Amazon DynamoDB",
    "variant": "default",
    "config": {
      "table_name": "datafly_events",
      "region": "us-east-1",
      "access_key_id": "AKIAIOSFODNN7EXAMPLE",
      "secret_access_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
      "partition_key": "message_id"
    },
    "delivery_mode": "server_side"
  }'

Testing

  1. Enable the integration in Signal and trigger a test event on your website.
  2. Open the DynamoDB console and navigate to your table.
  3. Click Explore table items to verify that event items are appearing.
  4. Check the message_id partition key and confirm the event payload is stored correctly.
  5. In Signal, check the Live Events view to confirm delivery status shows as successful.

Troubleshooting

ProblemSolution
Events not appearing in DynamoDBVerify the table name, region, and partition key match your DynamoDB table configuration.
AccessDeniedExceptionThe IAM user lacks dynamodb:PutItem or dynamodb:BatchWriteItem permission on the target table. Update the IAM policy.
ResourceNotFoundExceptionThe table does not exist in the specified region. Check the table name and region.
ValidationExceptionThe partition key name in Signal config does not match the table’s partition key. Verify both match exactly.
ProvisionedThroughputExceededExceptionYour table is in provisioned mode and has hit its write capacity. Switch to on-demand mode or increase provisioned WCU.
Credential errorsVerify the access key ID and secret access key are correct and the IAM user has not been deactivated.

Visit Amazon DynamoDB documentation for full API reference and best practices.