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
- Open the DynamoDB console.
- Click Create table.
- Enter a Table name (e.g.
datafly_events). - Set the Partition key to
message_id(type: String). Optionally add a Sort key such astimestamp(type: String) for time-range queries. - Leave the default settings (on-demand capacity mode is recommended for unpredictable workloads) or choose provisioned capacity if you have predictable traffic.
- 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
- Open the IAM console.
- Go to Users > Create user.
- Enter a username (e.g.
datafly-signal-dynamodb). - Select Attach policies directly.
- 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"
}
]
}- Replace the region, account ID, and table name with your values.
- Attach the policy to the user.
Generate Access Keys
- On the IAM user detail page, go to Security credentials.
- Under Access keys, click Create access key.
- Select Application running outside AWS.
- Click Create access key.
- 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
| Field | Type | Required | Description |
|---|---|---|---|
table_name | string | Yes | The DynamoDB table name to write items to. |
region | select | Yes | The AWS region where the DynamoDB table is located. |
access_key_id | secret | Yes | The AWS access key ID for authentication. |
secret_access_key | secret | Yes | The AWS secret access key for authentication. |
partition_key | string | Yes | The partition key attribute name used in your table. Defaults to message_id. |
Signal Setup
Quick Setup
- Navigate to Integrations in the sidebar.
- Open the Integration Library tab.
- Find Amazon DynamoDB or filter by Cloud Storage.
- Click Install, select a variant if available, and fill in the required fields.
- 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
- Enable the integration in Signal and trigger a test event on your website.
- Open the DynamoDB console and navigate to your table.
- Click Explore table items to verify that event items are appearing.
- Check the
message_idpartition key and confirm the event payload is stored correctly. - In Signal, check the Live Events view to confirm delivery status shows as successful.
Troubleshooting
| Problem | Solution |
|---|---|
| Events not appearing in DynamoDB | Verify the table name, region, and partition key match your DynamoDB table configuration. |
AccessDeniedException | The IAM user lacks dynamodb:PutItem or dynamodb:BatchWriteItem permission on the target table. Update the IAM policy. |
ResourceNotFoundException | The table does not exist in the specified region. Check the table name and region. |
ValidationException | The partition key name in Signal config does not match the table’s partition key. Verify both match exactly. |
ProvisionedThroughputExceededException | Your table is in provisioned mode and has hit its write capacity. Switch to on-demand mode or increase provisioned WCU. |
| Credential errors | Verify 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.