Saltar al contenido
Clinford Jordano Valencia
Todos los proyectos
PlataformaWebMóvil

Signal, una plataforma de telemetría en tiempo real

Un SDK de frontend tipado y un pipeline de eventos que dieron visibilidad en tiempo real a los embudos KYC globales de Binance, reduciendo el diagnóstico de incidentes de días a minutos.

Rol
Senior Frontend Engineer
Periodo
2025–actualidad
Stack
TypeScript · Mini Program · BFF · Kafka · Flink · ClickHouse · Grafana

El problema

Millones de personas en más de 100 países pasaban por la verificación de identidad, y algunas abandonaban sin que nadie lo notara. Cuando una integración con un proveedor fallaba, nadie lo veía: leíamos a mano registros de servidor dispersos y un diagnóstico tardaba de uno a tres días. Cada uno de esos días eran usuarios reales que no podían terminar el registro.

El enfoque

  • Un SDK pequeño y tipado. Un único rastreador en TypeScript recogía los mismos datos de acciones del usuario en cada pantalla, en web, móvil y Mini Program, para que los eventos significaran lo mismo en todas partes.
  • Limitación con válvula de seguridad. El SDK pone los eventos en cola y los envía cada 3 segundos o al llegar a 10, lo que ocurra primero. Una petición por clic agota los hilos de red del navegador; retener los eventos demasiado tiempo arriesga perderlos al cerrar la pestaña. Al salir de la página usa navigator.sendBeacon.
  • Un BFF que valida. Los lotes llegan a un Backend for Frontend que comprueba el esquema contra las definiciones de TypeScript, revisa que las marcas de tiempo sean coherentes, elimina campos inesperados y datos personales (PII) y añade los metadatos de la sesión y el veredicto del backend (aprobado, rechazado, pendiente de revisión). Comparar ese veredicto con lo que mostraba la interfaz reveló desajustes de estado entre la interfaz y el backend.
  • Kafka, Flink, ClickHouse, Grafana. Kafka absorbe los picos de tráfico mundiales, Flink procesa los eventos en tiempo real, ClickHouse los almacena (el almacenamiento en columnas responde en milisegundos a agregaciones sobre miles de millones de eventos de alta cardinalidad, donde el almacenamiento por filas se arrastra) y Grafana muestra los embudos.
  • Manejo silencioso de fallos. Si el pipeline cae, el SDK guarda hasta 100 eventos en localStorage y un cortocircuito pasivo detiene el envío. No consulta al servidor para comprobar su estado; espera la siguiente respuesta correcta.

El resultado

El tiempo para detectar un incidente bajó de 24–72 horas a menos de 5 minutos. En un embudo donde un paso roto de un proveedor significa miles de registros fallidos, esa es la diferencia entre una nota en el postmortem y una corrección esa misma mañana.