Study DVA-C02 DynamoDB, Consistency, and Caching: key concepts, common traps, and exam decision cues.
This lesson is about choosing and using data stores in a way that matches the application’s access pattern. DVA-C02 especially likes DynamoDB questions because they expose whether you understand partitioning, consistency, indexes, query efficiency, caching, and when a different specialized store would be a better fit.
Partition key: Value that DynamoDB uses to distribute items across partitions and to route reads and writes efficiently.
Eventually consistent read: Read that may return slightly stale data for a short period after a write, in exchange for lower cost and higher scale characteristics.
AWS wants you to separate:
| Need | Strong lane |
|---|---|
| predictable key-based retrieval at scale | DynamoDB query path |
| low-latency repeat reads for hot items | caching layer |
| full-text search or rich search analytics | specialized store such as OpenSearch |
| short-lived data or automatic expiration | lifecycle controls such as TTL |
This is still one of the easiest DVA-C02 traps:
If the question gives you a clear lookup pattern, DVA-C02 usually expects a key or index design answer, not a scan-heavy workaround.
Current Domain 1 explicitly includes partition-key thinking, so this is no longer optional background knowledge.
| Pattern | Better developer interpretation |
|---|---|
| high-cardinality partition key | distributes access more evenly |
| low-cardinality hot key | risks concentrated read or write pressure |
| known lookup path | should influence key and index design |
The exam does not want deep storage-engine math. It wants you to notice when a “simple key” answer will overload one hot access path.
The exam does not want theoretical database essays. It wants to know whether you can map requirements:
If the requirement says “must reflect the latest write immediately,” a strong-consistency answer is often better than a vague performance answer.
DVA-C02 also expects you to think like a developer actually using the store.
1import boto3
2
3table = boto3.resource("dynamodb").Table("Orders")
4
5def get_order(order_id: str) -> dict | None:
6 response = table.get_item(Key={"orderId": order_id})
7 return response.get("Item")
The exam point is not the exact SDK syntax. It is that application code should follow the known key path instead of scanning the table and filtering in code.
AWS does not expect one store to solve every problem.
Forcing every problem into DynamoDB is a common wrong answer.
DVA-C02 usually rewards the answer that matches the known access pattern rather than the one that touches more data.