What it covers
A small-but-real serverless architecture on AWS tying together five services:
- Scheduled Lambda polls the TMDb
now_playingendpoint every 24 hours via EventBridge - S3 stores each API response as a date-partitioned JSON object
- S3 ObjectCreated trigger fires a second Lambda that upserts into DynamoDB
- DynamoDB table with a Global Secondary Index on
(year_month, rating)supports both lookup and range queries - API Gateway exposes two REST endpoints (
/list/{year}/{month},/movies/{id}) backed by Lambda handlers - CloudWatch dashboard for operational monitoring
AE-adjacent takeaways
- Medallion-style thinking applies to event-driven data too — raw JSON in S3 is the “raw” layer, DynamoDB is the “silver” analytical layer
- Lambda concurrency limits matter — AWS Academy’s 10-concurrent cap meant reserved concurrency of 1 per function. Production workloads have the same concern at a larger scale
- Lambda layers for heavier dependencies — the
requestslibrary isn’t in Lambda’s default runtime, so it ships as a layer
Stack
- AWS: S3, DynamoDB, Lambda, API Gateway (REST), EventBridge, CloudWatch
- Python:
boto3,requests - Validation: IPyWidgets interactive tester hitting the deployed API