Uma plataforma de varejo processa fluxos de trabalho de pedidos em várias etapas. Cada pedido gera uma conversa de mensagens relacionadas (pedido criado, pagamento autorizado, itens reservados) que devem ser processadas em ordem por OrderId em vários assinantes. Quando um worker processa uma mensagem de 'pedido criado', ele deve enviar atomicamente dois comandos para serviços downstream ou reverter se o processamento falhar. Mensagens "venenosas" (poison messages) devem ser isoladas sem perdê-las. Qual design de mensageria você recomendaria?
Escolha uma resposta
Toque em uma opção para verificar sua resposta.
Resposta correta: Azure Service Bus topic com sessões habilitadas (sessionId=OrderId); criar assinaturas para cada serviço downstream; usar transações do Service Bus para completar a mensagem de entrada e enviar as duas mensagens de saída na mesma transação; contar com a subfila de mensagens mortas (dead-letter subqueue) nas assinaturas para mensagens "venenosas"..
Por que esta é a resposta
A opção correta atende a todos os requisitos. As sessões do Azure Service Bus (com sessionId=OrderId) garantem o processamento ordenado de mensagens relacionadas a um OrderId específico por um único consumidor. Um tópico com assinaturas permite que vários serviços downstream recebam suas próprias cópias das mensagens. As transações do Service Bus garantem que a conclusão da mensagem de entrada e o envio das duas mensagens de saída sejam uma operação atômica (tudo ou nada), essencial para a consistência. A subfila de mensagens mortas (dead-letter subqueue) é o mecanismo padrão e robusto do Service Bus para isolar mensagens "venenosas" sem perdê-las. As outras opções falham em um ou mais requisitos: Azure Service Bus queue sem sessões não garante a ordenação por OrderId em múltiplos assinantes. Azure Storage Queue não oferece transações atômicas para múltiplas operações de mensagens nem um mecanismo robusto de dead-lettering integrado. Azure Event Grid topic não garante ordenação por uma chave específica nem transações atômicas para operações de envio e recebimento. Azure Service Bus topic sem sessões não garante a ordenação por OrderId e desabilitar o dead-lettering é uma má prática.
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