A financial reconciliation service logs credit card transactions to an Azure Cosmos DB Core (SQL) API container. Each document contains the following structure:
{
"transactionId": "d7bfa5d3-8b7a-47ef-b4b1-9f9fa82fb5a7",
"merchantId": "8f8c6e3b-5867-4e78-bc41-df0c0cf8ef23",
"transactionDate": "2026-07-16",
"amount": 120.50,
"status": "Pending"
}
The service has the following requirements:
- Ingestion: Handles up to write operations per second during peak hours.
- Transactional Boundary: A daily reconciliation process must use a `TransactionalBatch` to atomically update the status of all transactions for a single merchant on a specific day.
- Reads: Multiple independent reconciliation nodes must read and verify these daily merchant records.
You need to select a partitioning strategy that avoids hot partitions and satisfies the transactional requirements.
Which partitioning strategy should you implement?
- AConfigure transactionId as the partition key.
- BConfigure transactionDate as the partition key.
- Configure a synthetic partition key that concatenates the merchantId and transactionDate properties.Answer
- DConfigure merchantId as the partition key and rely on Session consistency to guarantee read-your-writes visibility across all distributed reconciliation nodes.