You are designing an Azure Cosmos DB container for a global financial clearing platform that processes credit card transactions. The workload has the following characteristics:
* Write Ingestion: The platform continuously ingests transaction records at a rate of transactions per second.
* Transactional Boundary: The platform uses the Azure Cosmos DB .NET SDK to execute `TransactionalBatch` operations. Each batch contains up to transaction updates for a single merchant account that must succeed or fail atomically.
* Read Query Pattern: Hourly reconciliation jobs query for all transactions executed for a specific merchant during a specific hour (e.g., querying for merchant `M_98765` between and UTC).
* Storage and Throughput Profile: A small number of high-volume merchants (such as global airlines and retail chains) generate over of the total transaction volume, while the remaining volume is distributed across millions of boutique merchants.
You need to select a partitioning strategy that supports the transactional batches, avoids logical partition size limits, and minimizes hot partitions.
Which partition key strategy should you select?
- A synthetic partition key created by combining the merchant ID and the transaction hour (e.g., merchantId_yyyy-MM-dd-HH).Answer
- BA partition key defined as the transaction ID (/transactionId).
- CA partition key defined as the merchant ID (/merchantId).
- DA synthetic partition key created by appending a random integer suffix between 1 and 10 to the merchant ID (e.g., merchantId_randomSuffix).