Vous avez un conteneur Azure Cosmos DB SQL API partitionné par /customerId. Lorsqu'une commande est passée, votre service doit atomiquement : (1) créer le document de commande, (2) mettre à jour le champ openOrderCount du profil client, et (3) supprimer le document du panier client. Les trois documents partagent la même valeur customerId. Vous souhaitez que toutes les opérations réussissent ou échouent ensemble sans utiliser de procédures stockées côté serveur. Que devriez-vous faire ?
Choisissez une réponse
Appuyez sur une option pour vérifier votre réponse.
Bonne réponse : Utiliser le TransactionalBatch du SDK Azure Cosmos DB pour émettre des opérations de création, de remplacement et de suppression avec la même valeur PartitionKey égale à customerId..
Pourquoi c'est la réponse
L'option correcte est d'utiliser TransactionalBatch du SDK Azure Cosmos DB. TransactionalBatch permet d'exécuter un ensemble d'opérations sur des documents partageant la même clé de partition de manière atomique. Si toutes les opérations réussissent, la transaction est validée ; sinon, elle est entièrement annulée, garantissant ainsi la cohérence des données. Puisque les trois documents partagent la même customerId (clé de partition), TransactionalBatch est la solution idéale pour garantir l'atomicité sans procédures stockées côté serveur. Activer les transactions ACID inter-partitions n'est pas une fonctionnalité native d'Azure Cosmos DB pour les opérations transactionnelles directes sur des clés de partition différentes. Le Change Feed Processor est destiné à la réplication ou aux déclencheurs asynchrones, et non aux transactions atomiques immédiates. Effectuer des requêtes distinctes avec des ETags ne garantit pas l'atomicité ; cela nécessiterait une logique de compensation complexe pour annuler les opérations partielles en cas d'échec.
Réussissez votre examen — sans la chasse aux réponses interminable
Obtenez toutes les questions et explications vérifiées pour cet examen en un seul endroit, et économisez des heures de préparation. Plus de 1 000 certifications · Plus de 20 langues · Gratuit pour commencer.
Réussissez votre examen plus rapidement → Pas de carte requise