Ir para o conteúdo principal
Clinford Jordano Valencia
Todos os projetos
PlataformaWebMobile

Uma plataforma de telemetria de frontend em tempo real

Um SDK de frontend tipado e um pipeline de eventos que deram visibilidade em tempo real a fluxos de usuário de várias etapas, reduzindo a detecção de incidentes de dias para minutos.

Stack
TypeScript · BFF · Event streaming · Columnar storage · Dashboards

O problema

Alguns usuários abandonavam em silêncio um fluxo longo de várias etapas. Quando uma integração com terceiros quebrava, ninguém via: o diagnóstico significava ler à mão logs de servidor espalhados e levava dias. Cada um desses dias são usuários reais que não conseguiram concluir.

A abordagem

  • Um SDK pequeno e tipado. Um único rastreador em TypeScript coletava os mesmos dados de ações do usuário em cada tela e plataforma, para que um evento significasse a mesma coisa em todo lugar.
  • Limitação de taxa com válvula de segurança. O SDK agrupa eventos e os envia após um temporizador curto ou ao atingir um limite de tamanho, o que vier primeiro. Uma requisição por clique esgota as threads de rede do navegador; segurar os eventos por mais tempo arrisca perdê-los ao fechar a aba, então ao sair da página usa-se navigator.sendBeacon.
  • Um BFF que valida. Os lotes chegam a um Backend for Frontend que confere o schema contra as definições do TypeScript, verifica se os carimbos de tempo são plausíveis, remove campos inesperados e dados pessoais e anexa metadados da sessão. Comparar o veredito do backend com o que a interface mostrava expôs divergências de estado entre os dois.
  • Um pipeline de streaming para armazenamento colunar. O streaming absorve picos de tráfego, e o armazenamento colunar responde agregações sobre conjuntos de eventos enormes e de alta cardinalidade em milissegundos, onde armazenamentos por linha se arrastam.
  • Tratamento silencioso de falhas. Se o pipeline cai, o SDK guarda um pequeno buffer local e um circuit breaker passivo pausa o envio. Ele não faz ping no servidor para checar a saúde; espera a próxima resposta bem-sucedida.

O resultado

O tempo para detectar um incidente caiu de dias para menos de 5 minutos. Quando uma etapa quebrada significa muitas tentativas fracassadas, é a diferença entre uma nota no postmortem e uma correção na mesma manhã.