0
0
DynamoDBquery~30 mins

Event-driven architecture patterns in DynamoDB - Mini Project: Build & Apply

Choose your learning style9 modes available
Event-driven Architecture with DynamoDB Streams
📖 Scenario: You are building a simple inventory system that tracks product stock levels. When a product's stock changes, you want to capture this event and store it separately for auditing and analytics.
🎯 Goal: Create a DynamoDB table to store products, enable DynamoDB Streams to capture changes, and write a simple event handler function that processes these change events.
📋 What You'll Learn
Create a DynamoDB table named Products with ProductID as the primary key.
Enable DynamoDB Streams on the Products table to capture item modifications.
Create a variable called stream_arn to hold the stream ARN of the Products table.
Write a function called process_event that takes a DynamoDB stream event record and extracts the ProductID and Stock values.
Add a final step to simulate processing a sample event record.
💡 Why This Matters
🌍 Real World
Event-driven architectures are common in modern cloud applications to react to data changes in real time, such as updating dashboards or triggering workflows.
💼 Career
Understanding how to use DynamoDB Streams and process events is valuable for backend developers and cloud engineers working with AWS services.
Progress0 / 4 steps
1
Create the DynamoDB Products table
Create a variable called products_table that represents a DynamoDB table named Products with ProductID as the primary key.
DynamoDB
Need a hint?

Define products_table as a dictionary with keys TableName, KeySchema, and AttributeDefinitions.

2
Enable DynamoDB Streams on the Products table
Add a key StreamSpecification to products_table with StreamEnabled set to True and StreamViewType set to NEW_AND_OLD_IMAGES. Then create a variable called stream_arn and set it to the string 'arn:aws:dynamodb:region:account-id:table/Products/stream/2024-06-01T00:00:00.000'.
DynamoDB
Need a hint?

Update StreamSpecification inside products_table and create stream_arn as a string variable.

3
Write the event processing function
Write a function called process_event that takes one parameter record. Inside the function, extract ProductID and Stock from record['dynamodb']['NewImage'] assuming they are strings and numbers respectively, and return them as a tuple (product_id, stock).
DynamoDB
Need a hint?

Use dictionary keys to access NewImage data and convert stock to integer.

4
Simulate processing a sample event record
Create a variable called sample_record that mimics a DynamoDB stream event record with ProductID set to 'P123' and Stock set to 50. Then call process_event(sample_record) and assign the result to a variable called result.
DynamoDB
Need a hint?

Define sample_record as a nested dictionary matching DynamoDB stream format and call process_event.