Skip to content

sfn-entity-resolution-dynamodb-cdk: Zero-Lambda entity matching with Step Functions SDK integration - #3278

Open
NithinChandranR-AWS wants to merge 2 commits into
aws-samples:mainfrom
NithinChandranR-AWS:NithinChandranR-AWS-feature-sfn-entity-resolution-dynamodb-cdk
Open

sfn-entity-resolution-dynamodb-cdk: Zero-Lambda entity matching with Step Functions SDK integration#3278
NithinChandranR-AWS wants to merge 2 commits into
aws-samples:mainfrom
NithinChandranR-AWS:NithinChandranR-AWS-feature-sfn-entity-resolution-dynamodb-cdk

Conversation

@NithinChandranR-AWS

@NithinChandranR-AWS NithinChandranR-AWS commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Description

AWS Step Functions orchestrates AWS Entity Resolution ML matching jobs using native SDK integrations (zero Lambda). Amazon S3 uploads trigger Amazon EventBridge, which starts the state machine to match customer records and store results in Amazon DynamoDB.

Architecture

Amazon S3 (upload) -> Amazon EventBridge -> AWS Step Functions (CallAwsService SDK integration) -> AWS Entity Resolution (ML matching) -> Amazon DynamoDB (results)

Zero Lambda functions. Step Functions uses native CallAwsService to:

  1. Start the Entity Resolution matching job
  2. Poll for job completion (30s intervals)
  3. Store match metadata in DynamoDB

Deployed and Tested

Stack deploys in us-east-1 with 27 resources (108s). Verified:

  • EventBridge triggers SFN execution on S3 upload to records/ prefix
  • SFN starts Entity Resolution matching job via native SDK integration
  • State machine polling loop works correctly
  • All IAM roles scoped to specific resources

…ing pipeline

AWS Step Functions orchestrates Entity Resolution matching jobs triggered
by S3 uploads via EventBridge. Uses native SDK integration (CallAwsService)
to start and poll matching jobs, storing results in DynamoDB. Includes
Glue database/table for schema mapping and ML-based entity matching.
… and DependsOn for Entity Resolution role

Entity Resolution MatchingWorkflow was created in parallel with the IAM
role policy, causing a race condition where the service could not read
Glue table metadata. Added explicit DependsOn and expanded Glue
permissions (GetTableVersion, GetPartitions, BatchGetPartition).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants