Utility telemetry arrives as a write-heavy stream (Amazon Kinesis into Amazon DynamoDB), while an open-data catalog is read-heavy with relatively few writes. What capacity and key-design mindset should the architect apply?
Select an answer to reveal the explanation.
Short Explanation
A firehose of meter ticks is a write problem; a popular catalog is a read problem. Do not dress them in the same capacity suit—shape keys, buffering, and reads around how the traffic actually flows.
Full Explanation
Utility telemetry arriving as a write-heavy stream (Amazon Kinesis into Amazon DynamoDB) and an open-data catalog that is read-heavy are opposite capacity problems wearing municipal hats. For telemetry ingest, architects must design partition keys that spread writes, provision or auto-scale write capacity appropriately, and often retain Kinesis (or similar) buffering so sudden meter bursts do not create hot partitions or throttle storms. For the open-data catalog, design for read capacity, caching layers, or read replicas so citizen queries scale without forcing the write path’s constraints onto a mostly-read workload. Capacity and key design follow the access mix—not a single average.
Using identical provisioned settings and the same hot partition key for both workloads invites throttling on the firehose and overpaying or underperforming on the catalog. Sizing only for average CPU on a shared EC2 host ignores managed database access patterns and fails both spiky writes and read fan-out. Forcing both onto a single Amazon RDS Multi-AZ instance with no caching because “relational always wins” denies DynamoDB/streaming strengths for telemetry and may still need read scaling for the catalog—blanket relational dogma is not an architecture.
Exam caveat: DynamoDB partition key design is as important as raw RCU/WCU numbers; a single hot meter-id or timestamp key can throttle despite high provisioned capacity. Kinesis helps absorb bursts but does not remove the need for well-distributed keys downstream.
Operational check: review CloudWatch for DynamoDB throttles and hot-partition indicators on telemetry tables; confirm catalog read latency under citizen load with caching or replicas engaged; and run a dual-path load test so write spikes cannot starve open-data reads or vice versa.