Você tem um contêiner do Azure Cosmos DB SQL API particionado por /customerId. Quando um pedido é feito, seu serviço deve atomicamente: (1) criar o documento do pedido, (2) atualizar o openOrderCount do perfil do cliente e (3) excluir o documento do carrinho do cliente. Todos os três documentos compartilham o mesmo valor de customerId. Você quer que todas as operações sejam bem-sucedidas ou falhem juntas sem usar procedimentos armazenados do lado do servidor. O que você deve fazer?
Escolha uma resposta
Toque em uma opção para verificar sua resposta.
Resposta correta: Use o TransactionalBatch do SDK do Azure Cosmos DB para emitir operações de criação, substituição e exclusão com o mesmo valor de PartitionKey igual ao customerId..
Por que esta é a resposta
A opção correta é usar o TransactionalBatch do SDK do Azure Cosmos DB. Isso permite agrupar várias operações (criar, substituir, excluir) que compartilham a mesma chave de partição (neste caso, customerId) em uma única transação atômica. Se qualquer operação falhar, todas as operações dentro do lote serão revertidas, garantindo a atomicidade (todas ou nenhuma). Habilitar transações ACID entre partições não é uma opção nativa no Azure Cosmos DB para transações multi-documento. O Change Feed Processor é para reações a eventos e consistência eventual, não para atomicidade transacional imediata. Executar três solicitações separadas protegidas por ETags não garante atomicidade; se uma falhar, as outras podem já ter sido bem-sucedidas, levando a um estado inconsistente.
Passe no seu exame — sem a busca interminável por respostas
Obtenha todas as perguntas e explicações verificadas para este exame em um só lugar e economize horas de preparação. Mais de 1.000 certificações · Mais de 20 idiomas · Grátis para começar.
Passe no seu exame mais rápido → Não é necessário cartão