Local DynamoDB Integration

Read and write to DynamoDB
from your local workflows

Run your state machines and Lambda functions locally while reading and writing your real DynamoDB tables — no deployment, no stack updates, no mocking required.
Your real data. Your real tables. Zero deploys to iterate.

Thrubit — DynamoDB-Integrated Workflow Execution
Profile default
Region us-east-1
DynamoDB ● Live AWS
Last DynamoDB Operation
TableOrders
OperationPutItem
Duration12ms
WCU1
ValidateOrder SUCCEEDED
Order validated: ord-8a3c
Duration: 8ms
SaveOrderToDatabase DDB SUCCEEDED
Table: Orders · Key: ord-8a3c
PutItem → 200 OK · Duration: 12ms
NotifyFulfillment SUCCEEDED
SNS notification dispatched
Duration: 11ms
Real
Reads and writes to your actual DynamoDB tables
0
Deploys needed to test DynamoDB integration
Both
State machines & Lambda functions
All
DynamoDB operations supported

Trusted by teams at

You shouldn't need to deploy your stack just to test a DynamoDB write

Before Thrubit, validating a workflow that touched DynamoDB meant a full deploy cycle — SAM build, CloudFormation update, execution role sync — just to check that your PutItem payload was structured correctly.

Before Thrubit

Deploy. Wait. Check CloudWatch. Repeat.

Every change to a DynamoDB-integrated workflow required a full deploy cycle. Update your ASL, run SAM build, wait for CloudFormation, re-trigger the execution, then dig through CloudWatch to find out your key schema was wrong.

With Thrubit

Run locally. Hit real DynamoDB. Iterate instantly.

Open your state machine in Thrubit and run it. Your workflow executes locally while DynamoDB calls go directly to your real tables using your configured AWS profile — with full input, output, and error visibility in the execution panel.

Your local execution reaches real DynamoDB — automatically

When you run a state machine or invoke a Lambda in Thrubit, DynamoDB calls are passed through to real AWS using the profile and region configured in your settings. No changes to your workflow definition, no endpoint overrides, no code modifications needed.

  • Works for both Step Functions native DynamoDB integrations (arn:aws:states:::dynamodb:putItem, getItem, etc.) and direct SDK calls inside Lambda
  • Uses the same AWS profile and region as the rest of your Thrubit configuration
  • IAM permissions on your local profile apply — catch access and key schema issues before they reach production
  • Conditional expressions, update expressions, and projection expressions all execute against real DynamoDB — no translation layer
AWS Profile
DynamoDB calls forwarded to real AWS using local credentials
● Live
Mock Bedrock
Intercept Bedrock calls with mock responses
Real AWS Mock
Mock SQS
Intercept sendMessage calls with mock MessageId
Real AWS Mock
🗄 DynamoDB reads and writes use your real tables — no mock configuration needed.
LIVE DDB RESPONSE
GetItem → Orders
Input
{
 "TableName":
  "Orders",
 "Key": {
  "orderId": {
   "S": "ord-8a3c"
  }
 }
}
Response
{
 "Item": {
  "orderId": {
   "S": "ord-8a3c"
  },
  "status": {
   "S": "pending"
  },
  "total": {
   "N": "149.99"
  }
 }
}

Actual DynamoDB responses — not stubs

Because Thrubit passes DynamoDB calls through to real AWS, you get real responses — actual item data, real consumed capacity units, correct error messages for missing keys and failed condition expressions. Your ResultSelector mappings work against real data from day one.

  • GetItem returns the real item with DynamoDB's typed attribute format — {"S": "..."}, {"N": "..."}, {"BOOL": true} — exactly as your ResultSelector will see it in production
  • PutItem returns real ConsumedCapacity and reflects actual conditional expression outcomes — including ConditionalCheckFailedException
  • Query and Scan return real Items, Count, and LastEvaluatedKey for paginated results from your actual data
  • Error messages reflect real table and permission state — wrong key schema, throttling, and access denied errors surface before production

DynamoDB in state machines and Lambda — both work locally

DynamoDB appears in two places in Step Functions architectures: as a native service integration in the ASL, and as direct SDK calls inside Lambda functions. Thrubit handles both, routing requests to your real tables in either case.

  • ASL-level integrations like arn:aws:states:::dynamodb:getItem and dynamodb:putItem are handled natively by the Thrubit execution engine
  • Lambda-side AWS.DynamoDB.DocumentClient and DynamoDBClient calls reach your real tables through your configured AWS profile
  • Both DynamoDB (typed) and DocumentClient (simplified) APIs work — marshalling and unmarshalling behaves identically to the real SDK
  • Streams, GSI queries, transactional writes, and batch operations all pass through to real DynamoDB without modification
State Machine

ASL Native Integrations

  • dynamodb:getItem
  • dynamodb:putItem
  • dynamodb:updateItem
  • dynamodb:deleteItem
  • dynamodb:query
  • dynamodb:scan
Lambda SDK

Direct SDK Calls

  • DynamoDB.getItem()
  • DynamoDB.putItem()
  • DynamoDB.updateItem()
  • DynamoDB.query()
  • DocumentClient.get()
  • DocumentClient.put()

The DynamoDB operations your workflows actually use

Thrubit supports the full range of DynamoDB operations used in production Step Functions architectures — from single-item reads and writes to batch operations, transactions, and GSI queries.

GetItem
Single-item reads by primary key
Returns the real item with full DynamoDB typed attributes. Supports ProjectionExpression, ConsistentRead, and ExpressionAttributeNames — exactly as your ResultSelector will parse it.
PutItem
Single-item writes with optional conditions
Writes real items to your table. Conditional expressions execute against real data — attribute_not_exists, attribute_exists, and comparison conditions raise real ConditionalCheckFailedException on failure.
UpdateItem
Attribute-level updates and counters
Executes real update expressions — SET, REMOVE, ADD, DELETE — against your actual table data. Atomic counter increments and list appends work as expected in production.
Query
Key-based queries with filter expressions
Executes real queries against your tables and GSIs. Returns actual Items, Count, and LastEvaluatedKey — essential for Map state fan-outs and paginated result processing.
Scan
Full-table and GSI scans
Real table scans with filter expressions and projection. Supports parallel scan segments, ExclusiveStartKey pagination, and Limit — useful for bulk processing workflows with Map states.
Batch & Transactions
BatchGetItem · BatchWriteItem · TransactWriteItems
Multi-item batch reads and writes, and ACID transactional writes — all pass through to real DynamoDB. UnprocessedItems and transaction conflict errors surface correctly for robust error handling.

Access real DynamoDB from your first local run

No additional setup required beyond a configured AWS profile. Your local executions read and write real DynamoDB tables automatically.

Configure your AWS profile

In Thrubit's Settings, select the AWS profile and region you use for development. Any IAM permissions your local profile has are available to your local executions — including DynamoDB read and write access to your tables.

Open your state machine

Load your state machine from your local SAM template.yaml. Thrubit reads your ASL definition and resolves Lambda functions locally — including those that call DynamoDB using DocumentClient or DynamoDBClient inside their handlers.

Run and watch DynamoDB calls execute

Start an execution with your input. DynamoDB task states execute against real AWS using your configured profile. Each state's inputs, outputs, and raw DynamoDB response attributes are visible in the real-time execution panel — no CloudWatch digging required.

Iterate without redeploying

Update your ASL definition, Lambda handler, or expression attributes and run again immediately — no SAM build, no CloudFormation update, no role sync. Changes take effect on the next run.

Stop deploying just to test your DynamoDB integration.

Download Thrubit and run your first DynamoDB-integrated state machine locally in under five minutes — real reads and writes, full response visibility, zero deployment required.

What teams are saying

Real feedback from engineers, trainers and decision makers.

★★★★★

“Thrubit cut our Step Functions debugging cycle from 15 minutes per iteration down to seconds. The visual trace is worth the price alone. It’s become an essential part of our development workflow.”

Photo of Senior Software Engineer
Kim V.
Software Engineer at Cozy Code Creations
★★★★★

“I was looking for ways to make Step Functions and Lambdas more tangible for students. Thrubit makes it significantly easier to visualize workflows and experiment locally, accelerating real understanding.”

Photo of Certified AWS Trainer
John L.
Certified AWS Trainer
★★★★★

“Thrubit saves us over $24k a year & protects us from surprise AWS bills. One rogue state machine once cost us 10x our typical month. With Thrubit, that risk is gone and our developers iterate faster.”

Photo of Co-Owner at WordHerd
Lisa H.
Co-Owner at WordHerd
Free Trial