Pular para o conteúdo

Arquitetura real · Sênior

iFood: plataforma de features em tempo real para antifraude (250 → 50 ms)

O "Two Step Aggregator" monta janelas grandes a partir de passos pequenos. O cientista define o quê e a plataforma resolve o como.

17 min de leitura · Fonte: iFood · Conteúdo revisado em 23 de outubro de 2026

Resposta curta

O "Two Step Aggregator" monta janelas grandes a partir de passos pequenos. O cientista define o quê e a plataforma resolve o como. A prevenção a fraudes é crucial no ecossistema das Food Techs, e o iFood se tornou um alvo atraente para fraudadores, especialmente os que testam cartões roubados ou gerados.

01 · CONTEXTO E PROBLEMA

Fraude em tempo real exige features frescas

A prevenção a fraudes é crucial no ecossistema das Food Techs, e o iFood se tornou um alvo atraente para fraudadores, especialmente os que testam cartões roubados ou gerados. Como resposta, o iFood combina mecanismos tradicionais de segurança com modelos avançados de inteligência artificial, que avaliam, entre diversos parâmetros, o risco de estornos futuros.

Gerir esses modelos é complexo: um dos desafios é manter as features atualizadas e assegurar a integridade e a baixa latência no acesso aos dados. A resposta foi uma Plataforma de Features, em que os cientistas de dados definem o quê e a plataforma gerencia o como.

02 · A PLATAFORMA

Três camadas e um fluxo de ponta a ponta

A plataforma é composta por três abstrações principais: a Feature Engine, a Feature Store e a Feature Management. A Engine calcula a feature, a Store armazena e serve as features de forma consistente, e o Management garante a integridade, a eficiência e a segurança da plataforma.

Entre as ferramentas integradas estão Apache Spark, Apache Kafka, Delta Lake e Redis, e a plataforma foi desenvolvida principalmente para processar features em tempo real, com o streaming como foco principal. Uma vantagem apontada é a reutilização: as features existentes podem ser compartilhadas por diferentes modelos, sem recriar ou reprocessar features a cada novo modelo.

O Feature Management inclui o monitoramento contínuo, o gerenciamento do ciclo de vida das features (quais podem ser deletadas, quais são acessadas e por quem, além do custo) e o versionamento, que mantém o histórico de todas as alterações.

  1. No diagrama, o fluxo de eventos é a entrada da Feature Engine.

    Diagrama da arquitetura: Plataforma de features: visão geral
    QFluxo de eventos
    CPFeature Enginerecebe os dados
    DBDelta Table de atualizações
    CPRedis Materializer
    CPDelta Materializer
    CHRedis (armazenamento online)
    DBDelta Table histórica (offline)
    CPAPI REST de features
    CPModelo de fraude (SageMaker)
  2. Cada atualização da feature é armazenada em uma Delta Table localizada em um bucket do S3.

    Diagrama da arquitetura: Plataforma de features: visão geral
    QFluxo de eventos
    CPFeature Engine
    DBDelta Table de atualizaçõesregistra a atualização
    CPRedis Materializer
    CPDelta Materializer
    CHRedis (armazenamento online)
    DBDelta Table histórica (offline)
    CPAPI REST de features
    CPModelo de fraude (SageMaker)
  3. Os materializadores leem as transações da Delta Table e as armazenam no destino adequado.

    Diagrama da arquitetura: Plataforma de features: visão geral
    QFluxo de eventos
    CPFeature Engine
    DBDelta Table de atualizações
    CPRedis Materializerlê as transações
    CPDelta Materializerlê as transações
    CHRedis (armazenamento online)
    DBDelta Table histórica (offline)
    CPAPI REST de features
    CPModelo de fraude (SageMaker)
  4. O Redis Materializer salva apenas a versão mais recente da feature no Redis.

    Diagrama da arquitetura: Plataforma de features: visão geral
    QFluxo de eventos
    CPFeature Engine
    DBDelta Table de atualizações
    CPRedis Materializer
    CPDelta Materializer
    CHRedis (armazenamento online)versão mais recente
    DBDelta Table histórica (offline)
    CPAPI REST de features
    CPModelo de fraude (SageMaker)
  5. O Delta Materializer assegura a consistência do histórico, armazenando-o em uma Delta Table.

    Diagrama da arquitetura: Plataforma de features: visão geral
    QFluxo de eventos
    CPFeature Engine
    DBDelta Table de atualizações
    CPRedis Materializer
    CPDelta Materializer
    CHRedis (armazenamento online)
    DBDelta Table histórica (offline)histórico
    CPAPI REST de features
    CPModelo de fraude (SageMaker)
  6. Para as features em tempo real há uma API REST, que atende modelos no SageMaker e outras aplicações.

    Diagrama da arquitetura: Plataforma de features: visão geral
    QFluxo de eventos
    CPFeature Engine
    DBDelta Table de atualizações
    CPRedis Materializer
    CPDelta Materializer
    CHRedis (armazenamento online)
    DBDelta Table histórica (offline)
    CPAPI REST de featuresserve em tempo real
    CPModelo de fraude (SageMaker)

03 · FEATURE ENGINE

Agregação em dois passos

Os cientistas costumam criar várias features semelhantes que variam apenas a janela, como a contagem de pedidos dos últimos 7, 30 e 60 dias. Por isso o iFood desenvolveu o que chama de agregação em duas etapas.

O Two Step Aggregator organiza o dado em janelas menores, chamadas de passo; se o objetivo é agregar um mês, o passo pode ser de um dia. Os resultados desses pequenos segmentos são armazenados como estados intermediários e depois combinados para produzir a agregação final.

Entre os benefícios citados, há redução de custos, porque várias janelas são processadas numa mesma execução de query Spark, e a mesma base de código processa tanto batch quanto streaming.

Cada atualização da feature vira uma nova entrada na Delta Table, o que facilita a reconstrução de qualquer banco de dados em momentos subsequentes, de maneira análoga a um log transacional.

  1. No diagrama, os dados de entrada chegam à agregação por passo.

    Diagrama da arquitetura: Feature Engine: agregação em dois passos
    QDados de entrada
    CPAgregação por passorecebe os dados
    DBEstados intermediários
    CPCombinação de janelas
    DBDelta Table de features
  2. O dado é organizado em janelas menores, os passos; para um mês, o passo pode ser de um dia.

    Diagrama da arquitetura: Feature Engine: agregação em dois passos
    QDados de entrada
    CPAgregação por passodivide em passos
    DBEstados intermediários
    CPCombinação de janelas
    DBDelta Table de features
  3. Os resultados desses pequenos segmentos são armazenados como estados intermediários.

    Diagrama da arquitetura: Feature Engine: agregação em dois passos
    QDados de entrada
    CPAgregação por passo
    DBEstados intermediáriosresultados parciais
    CPCombinação de janelas
    DBDelta Table de features
  4. Os estados intermediários são combinados para produzir a agregação final, e várias janelas saem de uma mesma execução de query Spark.

    Diagrama da arquitetura: Feature Engine: agregação em dois passos
    QDados de entrada
    CPAgregação por passo
    DBEstados intermediários
    CPCombinação de janelascombina os estados
    DBDelta Table de features
  5. Cada atualização da feature é armazenada em uma Delta Table.

    Diagrama da arquitetura: Feature Engine: agregação em dois passos
    QDados de entrada
    CPAgregação por passo
    DBEstados intermediários
    CPCombinação de janelas
    DBDelta Table de featuresregistra a atualização

04 · FEATURE STORE

Online para servir, offline para treinar

A Feature Store é o repositório das features processadas e prontas para uso em modelos de machine learning, segmentada em duas categorias. A tabela resume o que o texto diz de cada uma.

AspectoOnlineOffline
Otimizado paraConsultas de baixa latênciaCapacidade e durabilidade
ArmazenamentoRedisDelta Table, baseada no AWS S3
MaterializadorRedis Materializer: apenas a versão mais recente da featureDelta Materializer: consistência do histórico
ConsumoAPI RESTSDK em Python
Exemplo de usoDetecção de fraudesTreinamento de modelos de machine learning

No armazenamento online, o iFood guarda as features em Redis e atinge latências menores do que 10 milissegundos; combinado a uma aplicação no Kubernetes, chega a taxas de 3 milhões de requisições por minuto, e em momentos de baixo fluxo os recursos desnecessários são deslocados.

O armazenamento offline permite recuperar o valor de uma feature num certo ponto no tempo, necessário para o treinamento de modelos, e cada armazenamento possui ainda um consumer específico.

05 · TREINO E INFERÊNCIA

Dois jeitos de ler a mesma feature

No treinamento, a precisão dos dados é a principal preocupação, sem necessidade de focar em latência. A extração usa um identificador único e um momento preciso no tempo, com janela de tempo fechada: o momento escolhido deve ser sempre posterior ao término da janela, para assegurar a não exposição de informações futuras.

O produto final é um dataframe do Spark em que cada característica vira uma coluna distinta.

Na inferência, a latência assume um papel crucial e basta o identificador para acessar os dados mais recentes. O iFood oferece uma API REST especializada, altamente escalável e capaz de processar milhões de requisições por minuto, e cada modelo recupera por ela todas as features necessárias para a sua etapa de inferência.

Segundo o iFood, a plataforma atacou o problema de diferenças entre a lógica da feature no pipeline de treinamento e a lógica para a inferência, o feature skew.

  1. No diagrama, há dois caminhos de leitura: um parte da SDK de treino e outro parte do modelo de fraude.

    Diagrama da arquitetura: Leitura de features no treino e na inferência
    CLSDK em Python (treino)caminho de treino
    DBDelta Table histórica
    CPModelo de fraude (SageMaker)caminho de inferência
    CPAPI REST de features
    CHRedis
  2. Para o histórico há uma SDK em Python que busca os dados históricos.

    Diagrama da arquitetura: Leitura de features no treino e na inferência
    CLSDK em Python (treino)
    DBDelta Table históricadados históricos
    CPModelo de fraude (SageMaker)
    CPAPI REST de features
    CHRedis
  3. A consulta usa um identificador e um momento no tempo, que deve ser posterior ao término da janela.

    Diagrama da arquitetura: Leitura de features no treino e na inferência
    CLSDK em Python (treino)
    DBDelta Table históricajanela fechada
    CPModelo de fraude (SageMaker)
    CPAPI REST de features
    CHRedis
  4. Cada modelo acessa a plataforma de features pela API, recuperando as features de que precisa.

    Diagrama da arquitetura: Leitura de features no treino e na inferência
    CLSDK em Python (treino)
    DBDelta Table histórica
    CPModelo de fraude (SageMaker)
    CPAPI REST de featuresserve o modelo
    CHRedis
  5. Na inferência basta o identificador para acessar os dados mais recentes, guardados no Redis.

    Diagrama da arquitetura: Leitura de features no treino e na inferência
    CLSDK em Python (treino)
    DBDelta Table histórica
    CPModelo de fraude (SageMaker)
    CPAPI REST de features
    CHRedisdados mais recentes

06 · RESULTADO E LIMITES

O que mudou e o que o texto não mostra

Segundo o iFood, o tempo de resposta médio do sistema de fraude era de 250 ms antes da plataforma e passou a 50 ms depois dela. O texto também descreve a redução da latência na recuperação de features de 250 ms para 50 ms, em aproximadamente cinco vezes.

Os modelos de fraude já aproveitavam o Amazon SageMaker, mas o iFood enfrentava desafios internos relacionados à criação e manutenção de features.

Ao tratar features como código e oferecer uma biblioteca padronizada, o iFood incentivou a reutilização e a descoberta de features entre as equipes. Segundo o texto, a plataforma serve mais de um bilhão de requisições diárias, abrange mais de 800 features e é usada por times como recomendação, logística e marketing.

Perguntas frequentes

O que é iFood: plataforma de features em tempo real para antifraude (250 → 50 ms)?

O "Two Step Aggregator" monta janelas grandes a partir de passos pequenos. O cientista define o quê e a plataforma resolve o como.

O que o design de iFood: plataforma de features em tempo real para antifraude (250 → 50 ms) cobre?

Ele está organizado nestas seções: Fraude em tempo real exige features frescas, Três camadas e um fluxo de ponta a ponta, Agregação em dois passos, Online para servir, offline para treinar, Dois jeitos de ler a mesma feature e O que mudou e o que o texto não mostra.

Quanto tempo leva iFood: plataforma de features em tempo real para antifraude (250 → 50 ms) e qual é o nível?

Leva cerca de 17 minutos para ler e tem nível Sênior.

Agora projete você mesmo

Rode este caso como uma entrevista na escola de System Design: você toma as decisões, o tutor as questiona e você vê a nota do seu desenho.