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ã.