A DynamoDB stream captures a time-ordered sequence of item-level changes in a DynamoDB table. It allows applications to react to data changes in real time.
Click to reveal answer
beginner
Explain the 'Event-driven processing' pattern in DynamoDB streams.
This pattern uses DynamoDB streams to trigger actions immediately after data changes. For example, a Lambda function can process new or updated items as soon as they appear in the stream.
Click to reveal answer
intermediate
What is the 'Change data capture' (CDC) pattern?
CDC captures and records changes made to data in DynamoDB tables. It enables replicating changes to other systems or analytics tools by reading the stream of changes.
Click to reveal answer
intermediate
Describe the 'Materialized view' pattern using DynamoDB streams.
This pattern keeps a separate table updated in real time to reflect a transformed or aggregated view of the original data. Streams trigger updates to the materialized view whenever source data changes.
Click to reveal answer
advanced
Why is ordering important in DynamoDB stream processing?
Ordering ensures that changes are processed in the exact sequence they occurred. This prevents data inconsistencies and ensures correct application behavior when reacting to updates.
Click to reveal answer
What does a DynamoDB stream capture?
ABackup snapshots
BUser login events
CTable schema changes
DItem-level changes in a table
✗ Incorrect
DynamoDB streams capture item-level changes such as inserts, updates, and deletes.
Which AWS service is commonly used to process DynamoDB stream events?
AAWS Lambda
BAmazon S3
CAmazon EC2
DAWS CloudTrail
✗ Incorrect
AWS Lambda can be triggered by DynamoDB streams to process changes automatically.
In the 'Materialized view' pattern, what is updated in real time?
AA separate table reflecting transformed data
BThe original table schema
CUser permissions
DBackup files
✗ Incorrect
A materialized view is a separate table updated to reflect transformed or aggregated data.
Why is processing order important in stream processing?
ATo encrypt data
BTo reduce storage costs
CTo maintain data consistency
DTo speed up queries
✗ Incorrect
Processing changes in order prevents inconsistencies and ensures correct results.
What does the Change Data Capture (CDC) pattern enable?
AChanging table indexes
BReplicating data changes to other systems
CDeleting old data automatically
DEncrypting data at rest
✗ Incorrect
CDC captures changes so they can be replicated or analyzed elsewhere.
Describe three common stream processing patterns used with DynamoDB streams and their purposes.
Think about how streams help react to or replicate data changes.
You got /3 concepts.
Explain why maintaining the order of events is important when processing DynamoDB streams.
Consider what happens if updates arrive out of order.
You got /3 concepts.
Practice
(1/5)
1. What is the main purpose of using DynamoDB Streams in stream processing patterns?
easy
A. To capture and react to data changes in real time
B. To store large amounts of data permanently
C. To create backups of the database
D. To improve query speed by indexing
Solution
Step 1: Understand DynamoDB Streams role
DynamoDB Streams capture data changes like inserts, updates, and deletes as they happen.
Step 2: Identify the purpose in stream processing
Streams allow applications to react immediately to these changes, enabling real-time processing.
Final Answer:
To capture and react to data changes in real time -> Option A
Quick Check:
Streams = real-time data reaction [OK]
Hint: Streams track changes instantly for real-time reactions [OK]
Common Mistakes:
Confusing Streams with data storage
Thinking Streams create backups
Assuming Streams speed up queries
2. Which of the following is the correct way to enable a DynamoDB Stream on a table?
easy
A. Create a global secondary index with Streams enabled
B. Add a Lambda trigger without enabling Streams
C. Set StreamSpecification with StreamEnabled = true and StreamViewType
D. Use the UpdateItem API to activate Streams
Solution
Step 1: Recall how to enable Streams
Streams are enabled by setting the StreamSpecification property on the table with StreamEnabled set to true and choosing a StreamViewType.
Step 2: Evaluate options
Set StreamSpecification with StreamEnabled = true and StreamViewType correctly describes enabling Streams. The other options do not enable Streams properly.
Final Answer:
Set StreamSpecification with StreamEnabled = true and StreamViewType -> Option C
Quick Check:
Enable Streams via StreamSpecification [OK]
Hint: Enable Streams in table settings, not via Lambda or indexes [OK]
Common Mistakes:
Trying to enable Streams via Lambda triggers
Confusing Streams with indexes
Using UpdateItem API to enable Streams
3. Given a DynamoDB Stream enabled with NEW_IMAGE view type, what will a Lambda function receive when an item is updated?
medium
A. Only the old item image before the update
B. Only the new item image after the update
C. Both old and new item images
D. No item images, only keys
Solution
Step 1: Understand StreamViewType NEW_IMAGE
NEW_IMAGE means the stream records contain the item as it appears after the change.
Step 2: Determine what Lambda receives on update
Lambda gets the new item image only, not the old one or both.
Final Answer:
Only the new item image after the update -> Option B
Quick Check:
NEW_IMAGE = new item data only [OK]
Hint: NEW_IMAGE streams send updated item data only [OK]
Common Mistakes:
Confusing NEW_IMAGE with OLD_IMAGE or BOTH_IMAGES
Expecting both old and new images
Assuming keys only are sent
4. A developer wrote a Lambda function triggered by DynamoDB Streams but it never processes any records. What is the most likely cause?
medium
A. The DynamoDB table does not have Streams enabled
B. The Lambda function code has a syntax error
C. The table has no data at all
D. The Lambda function timeout is too long
Solution
Step 1: Check Stream enablement
If Streams are not enabled on the table, no events trigger Lambda.
Step 2: Evaluate other options
Syntax errors cause failures but do not prevent invocation. No data means no changes, but usually there are some. Timeout too long does not stop invocation.
Final Answer:
The DynamoDB table does not have Streams enabled -> Option A
Quick Check:
Streams must be enabled for Lambda triggers [OK]
Hint: Check if Streams are enabled before debugging Lambda code [OK]
Common Mistakes:
Assuming code errors stop Lambda from triggering
Ignoring Streams enablement
Thinking timeout affects event triggering
5. You want to build a system that sends notifications only when a specific attribute "status" changes in DynamoDB items. Which stream processing pattern best fits this requirement?
hard
A. Use Streams with OLD_IMAGE view type only
B. Disable Streams and poll the table periodically
C. Enable Streams with KEYS_ONLY view type and check keys in Lambda
D. Filter and transform stream records in Lambda to detect "status" changes
Solution
Step 1: Understand the need to detect attribute changes
To detect changes in "status", you need both old and new values to compare.
Step 2: Choose the right pattern
Filtering and transforming stream records in Lambda lets you compare old and new images and trigger notifications only on "status" changes.
Step 3: Evaluate other options
OLD_IMAGE alone lacks new data, KEYS_ONLY lacks attribute data, polling is inefficient and not real-time.
Final Answer:
Filter and transform stream records in Lambda to detect "status" changes -> Option D
Quick Check:
Filter stream records in Lambda for attribute changes [OK]
Hint: Compare old and new images in Lambda to detect attribute changes [OK]
Common Mistakes:
Using KEYS_ONLY which lacks attribute data
Relying on OLD_IMAGE without new data
Polling instead of using Streams
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.