Estudo de caso · Stack

Como o iFood roda o maior app de delivery da América Latina com Kotlin, eventos e dados

O iFood liga restaurantes, mercados e entregadores a milhões de clientes, com cerca de 100 milhões de pedidos por mês. O backend é feito de microsserviços em Kotlin e Java na AWS e em Kubernetes, conversando por Kafka e eventos, com Databricks e SageMaker por trás dos dados e das centenas de modelos de machine learning.
Copiar stackifood.com.br Delivery de comida e mercado · Brasil · fundada em 2011

A stack da iFood

Abrir no montador

Linguagem

Hospedagem

Banco de dados

  • PostgreSQLaws.amazon.com

    Banco relacional, um por microsserviço no middleware financeiro.

Framework de celular

Busca de dados

  • Kafkajob-boards.greenhouse.io

    Integração por eventos entre os serviços, também via AWS MSK.

  • Amazon SQSjob-boards.greenhouse.io

    Filas para comunicação assíncrona entre serviços, com tópicos do SNS.

  • Amazon EventBridgeaws.amazon.com

    Barramento de eventos do middleware financeiro.

    Por quê: Filtro e roteamento, alta disponibilidade nativa e cobrança só pelo uso.

  • Databricksdatabricks.com

    Plataforma de dados da empresa toda, com Delta Lake e Databricks SQL.

    Por quê: Para acabar com a fila de análises e testar várias hipóteses ao mesmo tempo sem mexer na produção.

Framework de servidor

Modelo de IA

  • Amazon SageMakeraws.amazon.com

    Treina, registra e serve os modelos de machine learning da plataforma ML Go!.

    Por quê: Para tornar o treino reproduzível e o deploy em produção confiável, escalável e rastreável.

Análise de uso

  • Tableaudatabricks.com

    Painéis e relatórios diários em cima do Databricks.

Erros

Como montaram

Microsserviços em Kotlin na AWS

As vagas do iFood descrevem o núcleo: microsserviços em Kotlin ou Java com Spring Boot ou Ktor, rodando na AWS com Kubernetes no EKS. Os times seguem arquitetura hexagonal e ligam os serviços por eventos via Kafka, AWS MSK ou Kinesis, além de filas SQS e SNS.

A observabilidade é feita com OpenTelemetry e Prometheus, e quem desenvolve cuida do serviço em produção, dos alertas ao post-mortem.

Fontes:job-boards.greenhouse.io job-boards.greenhouse.io

Quebrando o monolito financeiro com eventos

O middleware financeiro do iFood era um monolito com partes muito acopladas, o que aumentava as falhas e o tempo de recuperação. O time quebrou o sistema em três microsserviços e um backend for frontend, com o Amazon EventBridge como barramento de eventos entre eles.

Escolheram o EventBridge pelo filtro e roteamento, pela alta disponibilidade nativa e por pagar só pelo uso, e colocaram filas de mensagens mortas e novas tentativas para nenhum evento se perder. O PostgreSQL continuou como banco, agora um por serviço, e o tempo para lançar uma funcionalidade caiu de um mês para uma semana.

Fontes:aws.amazon.com

Dados para todo mundo no Databricks

Antes, as áreas de negócio esperavam semanas por um time de dados pequeno, e alguns testes liam direto do servidor de produção. O iFood montou um simulador no Databricks e no Tableau para os times testarem cenários com o histórico de entregas sem mexer na produção.

Hoje mais de 2.000 pessoas tiram os próprios dados, e quem chega aprende a rodar consultas e notebooks no Databricks.

Fontes:databricks.com

Centenas de modelos no SageMaker

Ciência de dados e engenharia trabalhavam separadas, o que dificultava colocar modelos em tempo real no ar. O iFood criou uma plataforma interna de machine learning, a ML Go!, sobre o Amazon SageMaker, com pipelines de retreino, registro de modelos e endpoints controlados pela CI/CD.

Uma ferramenta chamada BruceML empacota o código de treino e de uso em containers, para os times recalibrarem e publicarem modelos de novo com rapidez e segurança.

Fontes:aws.amazon.com

Uma porta de entrada para a IA generativa

A GenPlat, plataforma de IA generativa do iFood, é a porta única de acesso aos modelos de linguagem, sejam proprietários ou open source. Ela tira dados sensíveis antes de o prompt chegar ao provedor, controla o consumo e vigia abusos como prompt injection.

Agentes de código como Copilot, Claude Code e Cursor se conectam à GenPlat e a uma base interna com os padrões técnicos do iFood.

Fontes:tech.ifood.com.br

Também detectado no site

Achado na página inicial com as regras abertas do Wappalyzer (HTML, scripts e cabeçalhos). Mostra o que roda no navegador, não o backend inteiro.

  • Cloudflare
  • HSTS
  • HTTP/3