Imagem de fundo

Uma instituição financeira está implementando um sistema de detecção de fraudes em temp...

Uma instituição financeira está implementando um sistema de detecção de fraudes em tempo real para processar transações de cartões de crédito originadas em dispositivos móveis globalmente. Devido à instabilidade de conectividade das redes móveis, os eventos de transação frequentemente chegam ao cluster de processamento fora de ordem e com atrasos variáveis (late arriving data). O requisito de negócio exige que as agregações de volume financeiro sejam calculadas com precisão determinística, baseando-se no momento exato em que a compra ocorreu, e não no momento em que o dado foi recebido pelo servidor, garantindo consistência mesmo em casos de reprocessamento histórico.


Considerando os conceitos de processamento de fluxo contínuo (streaming), semântica de tempo e mecanismos de tratamento de dados atrasados, é correto afirmar que:


A

a adoção da semântica de tempo de processamento (Processing Time) é a única abordagem capaz de garantir o determinismo dos resultados em caso de reprocessamento (replay), pois utiliza o relógio do servidor como fonte de verdade imutável, eliminando a complexidade de sincronização de relógios distribuídos;


B

para lidar com a chegada de dados fora de ordem em um fluxo infinito (unbounded stream) utilizando a semântica de tempo do evento (Event Time), o sistema deve empregar o conceito de marcas d'água (Watermarks), as quais funcionam como uma métrica de progresso do tempo lógico, sinalizando ao sistema que não são mais esperados eventos com timestamp inferior a um determinado valor;


C

o processamento em microlotes (micro-batching) elimina nativamente o problema de dados fora de ordem, pois, ao agrupar os eventos em pequenos pacotes discretos de tempo (ex: 1 segundo), o sistema força a ordenação correta dos registros dentro do buffer de memória antes de iniciar a computação da transformação;


D

as Janelas Deslizantes (Sliding Windows) são inadequadas para esse cenário de detecção de fraudes, pois exigem que os dados cheguem estritamente ordenados; a solução correta seria a utilização exclusiva de janelas de sessão (Session Windows), que se adaptam dinamicamente baseadas na inatividade do usuário, ignorando o timestamp do evento;


E

a arquitetura lambda é imprescindível para garantir a consistência dos dados nesse cenário, visto que motores de processamento de fluxo modernos (Stream Processors) são arquiteturalmente incapazes de garantir a semântica de processamento "exatamente uma vez" (exactly-once), dependendo sempre de uma camada batch corretiva para sanear os dados a posteriori.