Skip to content

Common DynamoDB Source Setup Mistakes

May 2026

DynamoDB source setup breaks when teams treat the table read path and the stream path as the same thing without checking the stream configuration.

Short Answer

The most common DynamoDB source mistakes are pointing at the wrong region, enabling CDC without enabling DynamoDB Streams correctly, and granting only table-scan permissions when the pipeline also needs stream access. Skippr can read DynamoDB in batch mode with table_name and region, but CDC requires cdc_enabled: true plus a stream configured with NEW_AND_OLD_IMAGES.

That difference is where many teams stumble. A batch read may work with DescribeTable and Scan, then the first CDC attempt fails because the stream was never enabled or was enabled with the wrong view type. If the stream does not include full before and after images, Skippr cannot apply the item mutations using the same final-state contract that warehouse destinations expect.

Why Teams Struggle with This

DynamoDB is one of the connectors where setup mistakes hide behind partial success. The table can be reachable, the IAM principal can scan it, and yet the CDC plan is still incomplete because stream permissions, shard access, and stream-view settings were never validated.

  • Using the wrong AWS region makes the configured table name look missing even when the table exists elsewhere.
  • Teams often enable DynamoDB Streams without selecting NEW_AND_OLD_IMAGES, which removes the mutation fidelity Skippr expects.
  • IAM policies that cover DescribeTable and Scan do not automatically cover DescribeStream, GetShardIterator, and GetRecords.
  • CDC resume depends on stored shard sequence numbers, so stream retention needs to cover realistic outage windows.

How Skippr Handles It

Skippr keeps the DynamoDB source honest by separating the simple batch connector fields from the CDC requirements documented in the CDC source guide. You can review the source config and ask a concrete question: is this just a table read, or is it a stream-backed pipeline with shard iterators and resume positions?

That pays off operationally. Skippr stores the last processed sequence number per shard after committed batches, then resumes with AT_SEQUENCE_NUMBER on restart. The setup is therefore explicit about both access and continuity instead of assuming AWS will smooth over the missing parts.

  • Direct table configuration through table_name and region for batch reads.
  • CDC support through DynamoDB Streams when cdc_enabled is turned on.
  • Resume behavior based on stored sequence numbers per shard.
  • A destination-friendly final-state contract when stream events include full item images.

What the First Useful Version Looks Like

The first useful version is a table read in the right region plus a confirmed IAM principal that can describe and scan the table.

If CDC is the real goal, enable the stream with NEW_AND_OLD_IMAGES before modeling downstream tables, because that choice determines whether updates and deletes are reconstructible later.