Decouple Product and Session Data for Cross-Region DR
Short answer
C Build two separate DynamoDB global tables for product and session data and add DAX caching for microsecond-latency reads with cross-Region replication.
Question
Which solution will meet these requirements with the HIGHEST performance?
Key Takeaways
The trap is ElastiCache for Memcached, which has no Global Datastore support, and the deciding factor is that DAX caching plus active-active global tables outperforms an RDS read-replica design.
This SAP-C02 migration question asks which design separates structured product data from temporary session data while replicating to another AWS Region at the highest performance. The correct choice is option C: two DynamoDB global tables plus DAX caching.
Common mistake: Option D is the most plausible trap: it looks like the safe hybrid (RDS for structured data, DynamoDB for sessions) but it has no caching layer and its cross-Region RDS read replica is read-only until promoted, so it is not the highest-performance choice.
Expert Analysis
What the question is really testing
Three requirements must be satisfied at once: the product catalogue and the temporary session data must live in separate stores (decoupled), the design must replicate into a second AWS Region for disaster recovery, and — the deciding qualifier — it must deliver the highest performance. Any option that fails one requirement is eliminated before performance is even compared.
Why B is invalid, not merely slower
Option B asks for a "global datastore in Amazon ElastiCache for Memcached". ElastiCache Global Datastore is supported only for Redis OSS (5.0.6 onward) and Valkey 7.2 — Memcached has no cross-Region replication at all, as the supplied AWS FAQ confirms. So the DR Region would hold no copy of the session data. This is a factual disqualifier, and several comments seize on it.
Why A fails the decoupling test
Separate schemas inside one Amazon RDS instance are a logical partition, not a decoupling: both data sets share the same instance, storage, connection pool and failure domain. A cross-Region read replica of that single instance also copies both data sets together, which is the opposite of the stated goal.
D versus C — the real decision
Option D is a defensible, conventional design (RDS for structured product data plus a DynamoDB global table for sessions), and the strongest comment for it argues that "using DynamoDB for structured product data may be less efficient and more costly than RDS, especially for complex relationships". However, the scenario mentions no joins, ad-hoc SQL or multi-table relational integrity, and a leading comment counters that "many e-commerce shops use DynamoDB to save the product catalogue" while noting that the question simply asks which is fastest.
Option C satisfies every requirement: two independent global tables fully decouple the data sets, global tables give active-active multi-Region replication (writes continue in the DR Region without promotion), and DAX adds microsecond-latency read caching that neither B nor D offers. That caching layer is what makes C the highest-performance answer.
What would flip the answer
If the product data required complex relational queries, reporting across joined tables, or strict referential integrity, option D would become correct because DynamoDB's single-table/key-value model forces a data-model rewrite. Also, if session data were purely disposable, ElastiCache for Redis OSS (not Memcached) with Global Datastore would be a valid faster path — B fails only because it names Memcached.
Operational consequence of getting it wrong
Choosing A or B leaves the DR Region without independent session storage or couples both data sets to one RDS failure; choosing D forfeits the caching and active-active write capability the question rewards.
Official Reference
- https://aws.amazon.com/elasticache/faqs/#topic-7
- https://docs.aws.amazon.com/AmazonElastiCache/latest/dg/Redis-Global-Datastore.html
- https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/multi-region-replication.html
These links open the official vendor documentation in a new tab.
Exam Strategy
Read the superlative first — "HIGHEST performance" means you must rank surviving options, not just find one that works. Then disqualify on factual capability before comparing speed: any option naming ElastiCache for Memcached with a Global Datastore is impossible, since only Redis OSS and Valkey replicate across Regions. Finally, check whether each requirement (decoupling, cross-Region replication, speed) is met by every remaining option; on database-choice questions, remember that a caching layer (DAX, ElastiCache) almost always beats a plain primary-plus-read-replica design when performance is the deciding criterion.
Frequently Asked Questions
Why is option B wrong if ElastiCache Global Datastore exists?
Can DynamoDB store structured product catalogue data?
How does DAX improve performance over a plain DynamoDB table?
Discussion 43 contributions
Compiled from public community threads and reader submissions, lightly edited for clarity. Handles and vote tallies are shown as recorded, and comments reflect the views of individual contributors.
From public community threads 30 of 43
-
kadavahuhu 👍 18 Answered CC - DynamoDB is for structured, semi-structured and unstructured data. So it can also hold the product data. Indeed many e-commerce shops use DynamoDB to save the product catalogue. There is nothing in the questin that would exclude DynamoDB for the product data. C has caching with DAX so it definitely has a higher performance than D which does not have caching and even no read replica in the same region.
-
Wardove 👍 11 Answered DStructured Data = RDS
-
shaaam80 👍 4 Answered DB is wrong, Elasticache with Memached does not support Multi-AZ or global datastores. Redis will be needed. Answer is D to use DynamoDB for session data.
-
ele 👍 4 Answered CThe HIGHEST performance is C. Structured data does not means "SQL". Dynamodb can handle structured data with no issues.
-
Russs99 👍 4 Answered DThe database for the application stores structured product data and temporary user session data, therefore. option D
Show 25 more comments
-
zolthar_z 👍 4 Answered DAnswer is D, Elasticache Global data Store only supports Redis
-
salazar35 👍 4 Answered DGlobal datastore supports for Redis only, not Memcached
-
saptati 👍 3 Answered DOption C is suboptimal because using DynamoDB for structured product data may be less efficient and more costly than RDS, especially for complex relationships and large datasets. It also adds unnecessary complexity and reduces query flexibility compared to relational databases. In contrast, option D offers a better solution by using RDS for structured product data and DynamoDB for session data, providing an optimal balance of performance, cost-effectiveness, and appropriate technology choices for different data types, while meeting the requirements for decoupling and cross-region replication. Thus, the correct answer is D.
-
bjexamprep 👍 3 Answered BFor those who voted D as the answer, your argument is that ElastiCache doesn’t support Multi-AZ and cross region deployment. But the question doesn’t ask for Multi-AZ and cross region session data replication. In a typical design, temporary data can be abandoned, which means when DR happens, you can create a new ElastiCache for Memcache in the DR region. If you argue that the question implies a DR setup, then none of the answers addresses the deployment of application instances. In the end, considering cross region deployment for the temporary data replication is not relevant to the question.
-
TomTom 👍 3 Answered COption C, provide highest performance. Creating two Amazon DynamoDB global tables—one for product data and another for user session data—while utilizing DynamoDB Accelerator (DAX) for caching. This setup allows for low-latency access and high throughput, making it ideal for applications with demanding performance requirements. Additionally, DynamoDB's global tables offer built-in replication across regions, ensuring disaster recovery capabilities without compromising performance.
-
titi_r 👍 3"C" should be wrong. "B" should be correct. "A traditional relational database management system (RDBMS) stores data in a normalized relational structure. [...] As a NON-relational database service, DynamoDB offers many advantages over traditional relational database management systems." https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-relational-modeling.html
-
career360guru 👍 3Choice is between B and D. Application information about how it is deployed in second region is missing for this question. B does not address cross region replication requirement for user sessions and assuming that is needed, option D is the right answer.
-
0dc6cac 👍 3 Answered D"Structured data" should be a giveaway.....no matter how fast DynamoDB is, it's still a key-value storage. Yeah a simple JSON can be stored effectively, but actual data will never be as fast as a proper RDS.
-
SeemaDataReader 👍 3 Answered DB talks about Global Datastore for memcached while memcached doesnt support global datastore, hence B is ruled out and D is the answer.
-
nublit 👍 3 Answered DD is the best answer. RDS with read replica (cross-region) for product data + Global DynamoDB for sessions data.
-
duriselvan 👍 3B ans https://aws.amazon.com/about-aws/whats-new/2023/04/amazon-elasticache-cache-rds-databases-console/
-
0b43291 👍 2 Answered COption C (using two DynamoDB global tables with DAX caching) provides the highest performance by leveraging the scalability, low latency, and caching capabilities of DynamoDB, while also meeting the requirements of data separation and replication for disaster recovery. The other options have limitations or drawbacks: Option A: While separate schemas in an Amazon RDS DB instance can separate the data, it lacks the performance and scalability of DynamoDB. Setting up replication across Regions for RDS is also more complex than using DynamoDB global tables. Option B: This option separates the data and provides replication, but using Amazon ElastiCache for Memcached for user session data may not match DynamoDB's performance for structured data. Managing two different data stores (RDS and ElastiCache) can also add complexity. Option D: While separating the data and providing replication, using RDS for the product data may not be as performant as DynamoDB for structured data, especially with high-traffic workloads.
-
jimee11 👍 2 Answered CDecoupling: Storing product data and session data in separate DynamoDB tables fully decouples the two data types. High performance: DynamoDB is highly performant for both structured and temporary data. DAX provides microsecond latency caching for DynamoDB queries. Global replication: Global Tables provide multi-Region, active-active replication, meeting disaster recovery (DR) needs without complex setup. Scalability: DynamoDB can scale automatically with minimal operational overhead.
-
vibzr2023 👍 2Answer: D B also works but you will endup doing lot of custom stuff to deploy multiple ElastiCache for Memcached clusters in different Availability Zones. Pay attention to the question which says "The company also needs to implement replication in another AWS Region for disaster recovery"
-
fa6d93f 👍 2 Answered DProduct data stays in RDS (best match for structured relational data). User session data goes into DynamoDB global table (great for ephemeral + global replication). Decoupled workloads. Very high performance.
-
alexbraila 👍 2 Answered CThis https://docs.aws.amazon.com/whitepapers/latest/big-data-analytics-options/amazon-dynamodb.html mentions indeed "DynamoDB stores structured data in tables". Based on the question, I would go with C
-
Totoroha 👍 2Answer is B. ( or D). Option D suggests using RDS for product data and DynamoDB for user session data. This could work, but it may not provide the same level of performance and decoupling as Option B.
-
junehc 👍 2I think D. ElastiCache for Memcached and DAX are good for read-heavy so they can improve performance, but not a good choice for read and write, and also Memcached – no replication
-
Russs99 👍 2 Answered BThe combination of RDS and ElastiCache also allows the company to decouple the product data from the user session data, another one of the company’s requirements
-
Totoroha 👍 2Amazon ElastiCache for Memcached does not support Multi-AZ (Availability Zone) deployments or global datastores in the same way as Amazon ElastiCache for Redis.
-
loreeant 👍 2 Answered CDynamoDB with DAX is specifically designed for high-performance use cases, making it the optimal choice when performance is the key requirement.
-
Miquella_The_Rizzler 👍 2 Answered CDynamoDB provide microseconds to single digit latency read/write also DynamoDB support structured data just fine
-
HunkyBunky 👍 2Is it really B? Because ElastiCache global database avaliable only for Redis and not for Memcached
-
trungtd 👍 2 Answered DQuerying structured data on DynamoDB does not provide as good performance as RDS
-
tmlong18 👍 2 Answered CC - DynamoDB with DAX is for structured data and the highest performance.
Reader comments & corrections
No reader corrections yet — spotted an error or have a note? Share it below.
Related Analysis
Practice All SAP-C02 Questions
Access 85 questions with complete answers and detailed explanations.
View Full SAP-C02 Practice Test →