Arquitetura real · Sênior
Despacho em tempo real: pedido, entregador e tempo de cozinha
É o par real do case_food_delivery. "O mais próximo" não basta: agrupa só se nenhum pedido atrasar, o veículo depende de peso e distância, a bateria do celular conta e o despacho depende do tempo de cozinha previsto.
Resposta curta
É o par real do case_food_delivery. "O mais próximo" não basta: agrupa só se nenhum pedido atrasar, o veículo depende de peso e distância, a bateria do celular conta e o despacho depende do tempo de cozinha previsto. Quando o cliente fecha o pedido, a plataforma repassa as informações ao restaurante, que pode ou não aceitá-lo.
01 · CONTEXTO E REQUISITOS
Do pedido ao entregador certo
Quando o cliente fecha o pedido, a plataforma repassa as informações ao restaurante, que pode ou não aceitá-lo. Nos restaurantes do tipo Entrega iFood, o iFood opera toda a logística de entrega e o restaurante pode focar em produzir o prato.
O problema de despacho que o iFood descreve é encontrar o melhor entregador para cada pedido, de modo que ele chegue no horário correto ao restaurante e depois leve o pedido até a casa do cliente. A dificuldade é que os pedidos nascem o tempo todo, espalhados pela cidade, e os entregadores também estão se locomovendo o tempo todo.
No diagrama, o pedido sai do app do cliente e chega à plataforma de pedidos.
A plataforma repassa ao restaurante as informações do pedido.
O restaurante tem por volta de 8 minutos para confirmar o pedido; sem confirmação, o pedido é cancelado automaticamente.
Nos restaurantes do tipo Entrega iFood, o iFood opera toda a logística de entrega; é esse trecho que o resto do caso aprofunda.
02 · PREVISÃO DE TEMPOS
Duas previsões antes de despachar
Um modelo de aprendizado de máquina constrói previsões de tempo de entrega para um determinado restaurante, raio de entrega e dia e horário da semana. O modelo também prevê o tempo de cozinha dos pedidos, informação crucial para decidir quando mandar o entregador ao restaurante.
Esse modelo é capaz de predizer os tempos de entrega e de cozinha a partir da situação do momento, e por isso esses tempos variam ao longo dos horários e dos dias.
Segundo o head de Desenvolvimento Logístico do iFood, ter um modelo preciso de tempo de preparo permite que o entregador chegue no exato momento em que o pedido fica pronto, sem afetar a experiência do cliente.
03 · ESTADO DA FROTA
O que o despacho precisa saber agora
O despacho recebe um fluxo de dados constante de todos os entregadores conectados, com posições, estado de conectividade, nível de bateria e outras informações. É preciso conhecer toda a frota, as posições e quem pode ou não pegar um pedido naquele momento.
A bateria é o exemplo do próprio iFood: com carga muito baixa, ele pode concluir que o entregador não conseguirá entregar o pedido até o fim, pois o celular pode apagar no meio do caminho. No texto voltado a entregadores, estar com pelo menos 15% de bateria e com o GPS calibrado em alta precisão aparece como boa prática de uso do app.
O app do entregador envia ao iFood um fluxo constante com posição, estado de conectividade e nível de bateria.
No diagrama, esse fluxo entra numa fila de eventos antes de ser consumido.
No diagrama, os eventos atualizam o estado da frota, que guarda a situação atual de cada entregador.
O otimizador precisa conhecer toda a frota, as posições e quem pode ou não pegar um pedido neste momento.
Com a bateria muito baixa, o iFood pode concluir que o entregador não vai conseguir entregar o pedido até o fim.
04 · CRITÉRIOS DE DISTRIBUIÇÃO
O mais próximo não basta
O iFood afirma que distribui os pedidos aos entregadores de acordo com um conjunto de critérios, usando inteligência de dados e algoritmos. A tabela resume os critérios que o texto lista.
| Critério | O que o texto diz |
|---|---|
| Proximidade de demanda | Entregadores mais perto de locais de demanda intensa são priorizados |
| Dedicação a uma região | Entregadores dedicados recebem os pedidos daquela região antes de outros |
| Agendamento de horário | Quem agenda com antecedência os horários em que estará disponível é priorizado |
| Bom uso do app | Adoção de boas práticas que garantem o bom funcionamento do app e a qualidade das entregas |
| Necessidades do pedido | Peso e forma de pagamento |
O bom uso do app está passando por atualizações para virar o Score, uma numeração que estabelece o nível do entregador de acordo com seu histórico de uso; quanto melhor o Score, maior a prioridade. Segundo o texto, essa novidade estava disponível apenas em praças específicas.
Entre as necessidades especiais do pedido estão o peso e a forma de pagamento. O texto mostra como a distância e o peso do pedido pesam na escolha do veículo.
| Tipo de pedido | Veículo priorizado |
|---|---|
| Rota curta, pedido leve | Bicicleta, geralmente |
| Rota mais longa, itens que cabem na bag | Moto |
| Compra volumosa, como a de mercado | Carro |
05 · ROTAS E AGRUPAMENTO
Otimizar rotas sem atrasar ninguém
O algoritmo de otimização testa diversas hipóteses de criação de rotas entre pedidos e entregadores. O objetivo é minimizar qualquer atraso e criar rotas mais curtas, o que livra o entregador mais rapidamente para uma próxima entrega. Essas decisões são tomadas minuto a minuto.
Há restrições: por exemplo, não escolher um entregador cuja distância até o restaurante seja tão grande que torne infactível a entrega no prazo.
O iFood também cria rotas de pedidos agrupados, como quando a sacola do entregador leva cinco pizzas para locais diferentes. Só faz isso se nenhum dos pedidos atrasar antes do que foi prometido ao consumidor.
As promessas de entrega estão entre os fatores mais importantes para a configuração temporal da rota.
A previsão do tempo de cozinha é informação crucial para decidir quando mandar o entregador ao restaurante.
No diagrama, o estado da frota chega ao otimizador junto com os pedidos e as previsões.
O algoritmo testa diversas hipóteses de rotas, com o objetivo de minimizar qualquer atraso e criar rotas mais curtas.
Uma das restrições é não escolher um entregador cuja distância até o restaurante torne infactível a entrega no prazo.
O objetivo é encontrar o melhor entregador para o pedido, de modo que ele chegue no horário correto ao restaurante.
06 · OPERAÇÃO E LIMITES
Monitorar, priorizar atrasos e conhecer os limites
Um monitoramento ao vivo acompanha cada cidade com Entrega iFood. Ele verifica se há entregadores suficientes para a quantidade de pedidos, se alguma região tem desbalanço e acompanha os pedidos com atraso.
Quando um pedido atrasa, o iFood abre uma ocorrência automática internamente e passou a priorizar a entrega.
Em outra camada, modelos estatísticos e de pesquisa operacional preveem quantos pedidos devem chegar durante um turno em uma cidade e quantos entregadores parceiros precisam estar disponíveis no período. Para o head de Desenvolvimento Logístico, equilibrar restaurante, entregador parceiro e consumidor final é o principal desafio.
Perguntas frequentes
O que é Despacho em tempo real: pedido, entregador e tempo de cozinha?
É o par real do case_food_delivery. "O mais próximo" não basta: agrupa só se nenhum pedido atrasar, o veículo depende de peso e distância, a bateria do celular conta e o despacho depende do tempo de cozinha previsto.
O que o design de Despacho em tempo real: pedido, entregador e tempo de cozinha cobre?
Ele está organizado nestas seções: Do pedido ao entregador certo, Duas previsões antes de despachar, O que o despacho precisa saber agora, O mais próximo não basta, Otimizar rotas sem atrasar ninguém e Monitorar, priorizar atrasos e conhecer os limites.
Quanto tempo leva Despacho em tempo real: pedido, entregador e tempo de cozinha 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.