Retail Cart References
How to tackle this challenge
What are the access patterns?
The access patterns in the scenario are:
- Insert and update items placed in a cart by users.
- Return items related to a user (AccountID), sorted by CreateTimestamp, and scoped to a specific Status.
- Return items across user by ItemSKU, sorted by CreateTimestamp, and scoped to a specific Status.
- Offline ad hoc queries for Business Intelligence team.
Identify possible partition keys to fulfill the primary access pattern:
- What item attribute scales in volume along with higher access?
- What is a natural organization for the related data items (so as to return collected items relative to the access patterns above)?
- Consider the dimension of access: both reads and writes.
When determining how to organize items related to the primary access pattern:
- What organization needs to be written to return items in sorted order (sort by)?
- What is the hierarchy of the relationships (most general to more specific)?
Fulfilling the second, third, and fourth access patterns:
- The second and third access patterns are OLTP access patterns and can be modeled directly in DynamoDB.
- The fourth access pattern is OLAP and does not need to be fulfilled directly on DynamoDB, or in your solution for that matter.
Given the above, see below for some helpful references.