Doctolib Supera Desafios do Chat de IA no Mobile e Libera Código Aberto
Aprofundamento CEVIU
Aprofundamento
A Doctolib não está apenas integrando IA ao mobile, está reescrevendo as regras de como aplicações React Native lidam com streaming contínuo de respostas geradas por modelos. O problema não era o modelo em si, mas a interação entre o fluxo de tokens e o ciclo de renderização do FlatList invertido, que causava travamentos na navegação e perda de estado ao rolar rapidamente. A solução, agora open source como react-native-streaming-message-list, substitui o polling tradicional por um mecanismo baseado em eventos: cada nova parte da resposta é emitida como um evento distinto, com tratamento explícito de falhas, timeouts e retries, sem depender de requisições periódicas desnecessárias. Isso reduziu em 80% o tráfego redundante entre app e backend, mas o ganho real está na experiência do desenvolvedor: menos código para manter, menos edge cases não documentados e maior previsibilidade no comportamento do componente.
O timing dessa liberação é estratégico: ela sustenta a expansão dos assistentes clínicos (consultation, telefônico e dictée) para novos mercados, como o Reino Unido, após a aquisição da Medicus Health, e alimenta o laboratório de IA clínica de €20 milhões, onde a robustez do pipeline móvel é pré-requisito para testes com profissionais reais em ambientes hospitalares. A empresa já investiu €115 milhões em P&D em 2024, com um terço destinado a IA, e mantém 100 engenheiros dedicados exclusivamente a essa área, o que explica por que a solução não foi um workaround, mas uma biblioteca projetada para escalar com segurança em produção.
Por que isso importa
Para desenvolvedores mobile que usam React Native e trabalham com chatbots ou assistentes baseados em LLMs, esse componente resolve um problema real e recorrente: o conflito entre streaming de tokens e atualizações de UI em listas invertidas. Não é só sobre performance, é sobre evitar bugs sutis de estado que só aparecem em cenários de rede instável ou alta latência, exatamente onde pacientes mais precisam de confiabilidade. Além disso, a migração para polling baseado em eventos antecipa a adoção de Server-Sent Events (SSE), um padrão mais leve que WebSockets para casos unidirecionais como respostas de IA, e alinha a arquitetura mobile da Doctolib com sua stack backend voltada para escalabilidade em larga escala, 90 milhões de pacientes e 500 mil profissionais exigem soluções que não quebrem sob carga.
Perguntas frequentes
Por que o FlatList invertido do React Native falha com streaming de IA?
O FlatList padrão recalcula todo o layout ao adicionar novos itens no topo, causando travamentos e perda de scroll position. Quando respostas de IA chegam token por token, isso gera centenas de atualizações rápidas, suficientes para quebrar a navegação e consumir recursos excessivos no thread principal.
O que muda na prática ao usar polling baseado em eventos em vez de polling tradicional?
Em vez de fazer requisições a cada 500ms para verificar se há nova resposta, o app agora escuta eventos específicos (como 'chunk-received' ou 'stream-ended'). Isso elimina requisições ociosas, reduz latência média e permite tratamento granular de erros, como reconectar automaticamente apenas quando o stream é interrompido, não a cada tentativa.
Esse componente open source funciona apenas com assistentes clínicos da Doctolib?
Não. Ele é agnóstico quanto ao backend: aceita qualquer fluxo de dados estruturado como chunks de texto, com metadados opcionais (ex: role, timestamp, status). Já foi testado com OpenAI, Anthropic e modelos locais via Ollama, desde que o protocolo de transmissão seja compatível com eventos simples.
A Doctolib vai migrar totalmente para SSE no mobile?
Ainda não. O componente atual usa eventos customizados via WebSocket ou fetch + ReadableStream, mas a equipe já confirmou que SSE é a próxima etapa de evolução, principalmente para reduzir complexidade de conexão persistente em redes móveis com troca frequente de IP e NAT.
Fontes
- medium.comfonte original
- Categoria
- CEVIU Web Dev
- Publicado
- 06 de março de 2026
- Editoria
- CEVIU Web Dev
