Pular para o conteúdo principal

Questão de Arquitetura de Software — Arquitetura de Software — FADESP 2026

Arquitetura de SoftwareArquitetura de Software
Código
qg669772
Banca
FADESP
Órgão
SEFAZ-PA
Ano
2026
Nível
Superior
Cargo
Auditor Fiscal de Receitas Estaduais - Conhecimentos Gerais
Com relação à ingestão de dados via filas de mensagens em pipelines de dados, considere o cenário a seguir. Um pipeline consome eventos de uma fila de mensagens que pode entregar mensagens fora de ordem e com política de entrega “pelo menos uma vez”, o que pode ocasionar o recebimento do mesmo evento mais de uma vez. Nesse contexto, a medida mais adequada para evitar efeitos duplicados no processamento é
  1. Aassumir uma entrega do tipo FIFO.
  2. Bdescartar mensagens que não sejam confirmadas no primeiro recebimento.
  3. Cprojetar o processamento do consumidor de forma idempotente.
  4. Daumentar o número de consumidores.
  5. Eaplicar uma janela para reordenar eventos por timestamp antes do processamento.
Revelar gabarito e comentário

GabaritoC — projetar o processamento do consumidor de forma idempotente.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Ingestão de dados via filas de mensagens e duplicidade

Gabarito: letra C. Em um cenário com política de entrega "pelo menos uma vez", o recebimento de mensagens duplicadas é inevitável. A única forma de garantir que o processamento não gere efeitos duplicados no resultado final é projetar o consumidor de forma idempotente, ou seja, processar a mesma mensagem múltiplas vezes produz o mesmo efeito que uma única execução. As demais alternativas ou não eliminam duplicatas ou introduzem outros problemas.

A banca testa o conhecimento sobre padrões de processamento em sistemas de mensageria, especialmente a diferença entre políticas de entrega e a importância da idempotência para garantir consistência.

Alternativa A — ❌ Incorreta

Assumir entrega FIFO (First-In, First-Out) garante a ordem das mensagens, mas não resolve o problema de duplicidade gerado pela política "pelo menos uma vez". Mesmo em filas FIFO, se a entrega for "pelo menos uma vez", duplicatas podem ocorrer.

Alternativa B — ❌ Incorreta

Descartar mensagens não confirmadas no primeiro recebimento não é uma estratégia viável. O sistema não tem como distinguir uma mensagem duplicada de uma nova, e descartar mensagens não confirmadas pode levar à perda de dados legítimos.

Alternativa C — ✅ Correta ⟵ GABARITO

Projetar o processamento do consumidor de forma idempotente significa que, mesmo que a mesma mensagem seja recebida múltiplas vezes, o efeito no estado final será o mesmo. Por exemplo, uma operação de "inserir se não existir" ou "atualizar com base em chave" garante idempotência. Essa é a medida mais adequada para lidar com duplicatas em sistemas com entrega "pelo menos uma vez".

Alternativa D — ❌ Incorreta

Aumentar o número de consumidores pode aumentar a taxa de processamento, mas não evita duplicatas. Pelo contrário, com múltiplos consumidores concorrentes, pode até agravar o problema se não houver controle de concorrência.

Alternativa E — ❌ Incorreta

Aplicar uma janela para reordenar eventos por timestamp pode corrigir a ordenação, mas não elimina duplicatas. Mensagens duplicadas continuariam a aparecer na janela e seriam processadas novamente, a menos que a lógica de processamento também seja idempotente.

Gabarito: letra C.

Link permanente: /questoes/qg669772